Day49 Redis集群运维与核心原理解析

主从,哨兵,集群,codis

无法实现自动切换ms,高可用
单点过热
适合数据量大的业务

Screen Shot 2022-06-02 at 11.59.39 AM.png
  • 集群原理分析

默认槽位算法:
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 选举流程

主观和客观下线
半数认为下线才下线

你可能感兴趣的:(Day49 Redis集群运维与核心原理解析)