redis3集群

本文详细介绍了Redis 3集群的配置,包括节点端口设置、主从模型及其数据一致性问题、关键配置参数如`cluster-node-timeout`、`cluster-slave-validity-factor`等。此外,还探讨了集群的创建、节点添加、删除及故障转移操作,以及如何在集群中实现数据迁移和更新节点版本。
摘要由CSDN通过智能技术生成
redis集群节点需要两个TCP端口:
1. 6379端口默认给client提供服务,所有需要访问集群的client和其他集群节点都要能访问(集群节点作为键迁移)
2. 16379作为集群通信端口,节点到节点的通信的二进制通道(用于节点失效检测、配置更新、故障迁移认证),注意这个端口总是提供服务端口+10000

redis集群的主从模型
防止一台故障集群故障,master故障可以使slave提升为master,继续提供服务
一个master可以有N个slave

redis集群数据一致性
主从同步的问题:
由于主从没有通告机制,所以客户写到master之后再同步给slave,slave不会向master通告是否slave是否同步OK,这样在客户写给master之后,master挂了(数据写入了master),挂了之后数据不能同步到slave,这样slave提升到master之后,写入的数据就丢失了。
主从同步复制:
通过WAIT命令支持同步写机制。会导致写性能降低。即使使用同步写也存在数据一致性的问题:
Z1 A---- A1
B---- B1
C---- C1
Z1(客户端)和B在一个网络区域,剩余在一个区域。当两个区域的网络中断,中断很快恢复时,集群将正常运行。当中断时间足够长时,B1被提升为master,Z1写入B的数据就会丢失。注意,Z1能写入B的数量为maximum window:时间足够长的话,有多数master节点的区域选举了一个slave为master,在少数区域的所有主节点将禁止写入。
这个超时的时间是redis集群非常重要的一个配置: node timeoutnode timeout超时后,某个主节点被视为失效,可以被其slave接替为master。类似的,少数区域内的其他主节点进入错误状态,停止接收写入。(主节点的个数是确定的,每个区域可以计算出当前区域是少数节点还是多数节点,这是网络分割为两个部分的情况,多余两个部分可能会出现所有区域都算作少数节点吧)

redis集群配置参数
cluster-enabled <yes/no> yes开启redis集群。no不开启集群。
cluster-config-file <filename> 注意,这个配置文件用户不可编辑,redis集群节点在有更改时自动更新。文件中列出集群中的其他节点的状态、持久变量等。该文件重写和刷新表面接收到某些消息。
cluster-node-timeout <milliseconds> redis集群节点可以中断的最大时长,没有配置被视为节点失败。在指定时间内master节点不可达的话,slave将接替master。这个参数控制redis集群其他重要的属性。尤其是,各节点在指定时间内不可达多数主节点区域的话,将会停止接收请求。
cluster-slave-validity-factor <factor> 如果设置为0,slave将总是尝试接管master,而不管master和slave之间中断的时长。如果为正,最大中断时长=node timeout时长*该参数提供的因子,并且如果该节点为slave,如果master连接中断大于指定时长,它将不会启动故障切换 (有些slave可能与master断开一段时间了,导致数据过于陈旧,避免这些slave接替master)。例如,node timeout设置为5秒,validity factor设置为10,slave与master连接中断大于50秒,slave将不会尝试去接替master。注意,在一个主节点失败后如果没有可以接替master的slave,非0的值将导致redis集群不可用。在这种情况下,只有原来的master重新加入集群才可以恢复集群。
cluster-migration-barrier <count> master连接的slave的数量大于该值,slave才能够迁移到 孤立的master
cluster-require-full-coverage <yes/no> 默认情况下,集群全部的slot有节点负责,集群状态才ok,才能提供服务,设置为no,可以在slot没有全部分配的时候提供服务。 不建议打开该配置,会造成分区的时候,小分区的master一直在接受写请求,而造成很长时间数据不一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值