Redis cluster基础介绍

Redis 3.0.x集群方案正式版发布,支持通过两个TCP端口实现高效数据分片与稳定服务。每个节点使用两个端口,一个普通端口供客户端连接,另一个用于节点间二进制数据通信。数据通过哈希槽进行分片,确保添加、删除节点或调整负载时无宕机风险。同时,通过主从模式增强集群稳定性,即使部分节点故障,系统仍能保持正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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. 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值