Redis cluster基础介绍

Redis 3.0.x支持集群方案的正式版终于发布了!!!!

1、TCP端口

每个节点需要使用两个TCP端口. 一个普通端口给客户端使用, 比如6379, 另外个则在这个数字上加1000, 本例中也就是16379.

后者这个高位端口是作为集群总线用的, 是节点对节点的二进制数据通信频道. 集群总线用作节点间的宕机侦测, 配置变更, 故障转移认证等等. 客户端应该不使用集群总线端口, 而应该使用那个普通端口. 确保这两个端口都没被防火墙禁掉, 否则Redis集群会工作不正常.

2、数据分片

Redis集群有16384个hash slot, 计算一个给定key的hash slot, 则是把该key的CRC16值对16384取模. 
集群中的每个节点覆盖hash slot的一部分, 比如一个集群有3个节点, 则: 
@节点A覆盖0到5500; 
@节点B覆盖5501到11000; 
@节点C覆盖11001到16384. 

这样使得添加和删除节点很容易. 比如我想添加一个新节点D, 则只要把一些hash slot从ABC挪到D. 类似的, 我想移除节点A, 我只要把A下的slot hash移到B和C, 当节点A空了我就可以把A完全移除掉了. 
因为移动hash solt不需要停止节点的运行, 所以添加删除节点, 或者改变节点持有的hash slot百分比, 都不会有什么宕机时间. 

3、主从模式 

如果在集群建立的时候(或者建完后), 我们为每个主节点都添加了从节点, 比如像这样, 集群包含主节点A B C, 以及从节点A1 B1 C1, 那么即使B挂掉系统也可以继续正确工作. 
B1节点替代了B节点,所以Redis集群将会选择B1节点作为新的主节点,集群将会继续正确地提供服务。 

4、一致性保证

Redis集群无法保证强一致性,原因是slave是异步写的。

5、限制条件

注意, 最小的Redis集群需要包含至少3个主节点. 头次试验, 强烈建议创建6个节点, 3个主节点, 3个从节点. 

6、客户端

Jedis最近开始支持Redis集群, 请查看Jedis Cluster的README. 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值