Day49 Redis集群运维与核心原理解析
2022-06-02 本文已影响0人
小周爱吃瓜
主从,哨兵,集群,codis
无法实现自动切换ms,高可用
单点过热
适合数据量大的业务
- 集群原理分析
默认槽位算法:
crc16 mod 16384.
-
跳转重定向
redis cluster集群节点间采用gossip协议进行通信 -
集群选举
s发现m变成fail状态时。尝试进行failover,成为新的master.
但是会有竞争
epoch时钟+1
发送auth_ack.
会有一定的延迟:
Dealy = 500ms +random(0-500ms)+salve+rank * 1000ms.
-
奇数节点,防止脑裂
-
如何让所有支持的Key落到同一个slot上?
其实就是lua脚本在集群环境下使用的注意点是一样的,设置一个prefix前缀一个道理。
mget mset 这种原生批量命令
redis集群只支持所有key落到同一slot的情况
mset {user1}:1:name zhuge {user1}:1:age 18.
这样取多个key的时候根据hash slot算法,落到同一个slot,这样能够取到值了。
和lua脚本在集群环境下加 prefix前缀是一个道理
- 奇数节点:
防止脑裂一个道理
哨兵Leader 选举流程
主观和客观下线
半数认为下线才下线