开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 17 天,点击查看活动详情
redis的高可用部署
前文
本文的主要内容主要是关于redis通过主从部署实现高可用的一些相关知识的总结。
redis的高可用
什么是高可用
高可用,简单来说,就是保证系统运行的稳定性,尽可能在无论发生何种意外情况时,依然保持系统的可访问。针对redis来说,就是保证redis的可连接可操作性,避免出现服务中断问题。
redis主从高可用
redis的高可用,主要是通过主从架构来实现。也就是对于高可用的redis部署,需要有一个主节点以及多个从节点,保证整体redis服务的稳定性。主从节点之间主要是通过socket连接处理,保证消息的实时通信。而主从节点之间的数据同步,在第一次连接时会由从节点连接到主节点上,主节点发送rdb数据,从节点进行数据的同步。而当连接后主节点的每个命令执行过程中,会直接通过socket进行命令的发送,来实现从节点与主节点的数据一致性。对于redis中的数据超时失效,主节点会模拟一条del语句,将语句发送到从节点,模拟进行删除操作,实现主从节点的数据同步。当主从节点的同步因网络等原因造成延迟时,实际会通过偏移量来进行增量数据复制,以此保证主从节点的数据一致。另外,实际的主从节点数据复制,采用的是异步的方式并非同步,提高实际命令的执行效率。redis命令的执行过程中,主节点负责数据的读和写入,从节点一般仅负责数据的读取。
redis高可用的哨兵模式
再考虑另一个问题,当主节点挂掉怎么处理呢?这时候就要引入redis后期所引入的哨兵模式。哨兵,顾名思义就是服务的监控者。通过哨兵模式会对主节点的状态进行监控,当主节点出现意外断开连接时,哨兵会从其他从节点中进行选取作为新的主节点。那么哨兵如果出现意外断开连接呢?这就是哨兵模式要求哨兵进行集群部署的原因,且要部署为奇数个。这样当进行选举时,能保证选举到唯一的新主节点。
后记
本文对redis的主从部署高可用及哨兵模式的相关问题进行了初步的介绍及分析,以此来加深对redis高可用的理解。