redis-sentinel
工作原理
如图
首先redis会维护一个sentinel集群,这个是集群高可用的心脏,一般由3~5个节点组成.
客户端连接集群式,会先连接sentinel,通过sentinel查询节点的地址,然后再连主节点进行数据交互.
如图
如果主节点挂了,那么客户端会重新向sentinel要地址,sentinel会将最新的主节点地址告诉客户端.
挂掉的节点会成为从节点,从新的主节点那里建立复制关系.
缺点
redis主从异步复制,master主节点挂掉,从节点肯定会丢失消息,
主从延迟越大,丢的越多.
限制主从延迟过大:
min-slaves-to-write 1
至少有一个节点保证正常复制.
min-slaves-max-lag 10
超过10s没有收到从节点的反馈,则认为异常复制,从节点复制不正常了