Redis分片技术(Redis Cluster)

 

  1. redis Cluster介绍

(1) Redis-Cluster是一种服务器Sharding技术,Redis3.0以后版本正式提供支持

(2) 特点:

① Redis_cluster没有使用一致性hash,而是引入了hash槽的概念。Redis_Cluster中有16384(即2的14次方)个hash槽,每个key通过CRC16校验后对16383取模来决定放置哪个槽。Cluster中的每一个节点负责一部分hash槽

② 实例

1) 比如集群中存在三个节点,则可能存在的一种分配如下

  1. 节点A包含0-5500号哈希槽
  2. 节点B包含5501-11000号哈希槽
  3. 节点C包含11001-16384号哈希槽
  4. 其他方案

(1) Redis Sentinel集群+Keepalived/Haproxy

① 底层是Redis Sentinel集群,代理着Redis主从,web端通过VIP提供服务。当主节点发生故障,比如机器故障、Redis节点故障或者网络不可达,Redis之间的切换通过Redis Sentinel内部保障机制,VIP切换通过keepalived保障

② 优点

1) 秒级切换

2) 对应用透明

③ 缺点

1) 维护成本高

2) 存在脑裂

3) Sentinel模式存在短时间服务不可用

(2) Twemproxt

① 多个同构Twemproxy(配置相同)同时工作,根据hash算法,转发给对用的Redis

② 优点

1) 开发简单,对应用几乎透明

2) 历史悠久,方案成熟

③ 缺点

1) 代理影响性能

2) LVS和Twemproxy会有节点性能瓶颈

3) Redis扩容非常麻烦

(3) Codis

① Codi是由豌豆荚开源的产品,涉及众多组件,其中Zookeeper存放路由表和代理节点元数据、分发Codis-config的命令;Codis-config是集成管理工具,有web界面提供使用;Codis-Proxy是一个兼容Redis协议的无状态代理;Codis-Redis基于Redis2.8版本二次开发,加入了slot支持,方便迁移数据

 

上一篇:Google地图3D城市模型下载最新实践


下一篇:全篇精华不讲一句废话,腾讯高工手码Redis深度笔记我粉了!