redis cluster 分片算法

 

 

redis cluster:

(1)自动将数据进行分片,每个master上放一部分数据
(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的

 

分片算法:

hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法

 

1、hash算法和弊端(大量缓存重建)

2、一致性hash算法(自动缓存迁移)+虚拟节点(自动负载均衡)

增加虚拟节点解决缓存热点问题

3、redis cluster的hash slot算法

redis cluster有固定的16384个hash slot,对每个key计算CRC16值,然后对16384取模,可以获取key对应的hash slot

redis cluster中每个master都会持有部分slot,比如有3个master,那么可能每个master持有5000多个hash slot

hash slot让node的增加和移除很简单,增加一个master,就将其他master的hash slot移动部分过去,减少一个master,就将它的hash slot移动到其他master上去

移动hash slot的成本是非常低的

客户端的api,可以对指定的数据,让他们走同一个hash slot,通过hash tag来实现

posted on 2018-03-14 21:17  HB1  阅读(738)  评论(0编辑  收藏  举报

导航