redis数据淘汰原理 redis过期数据删除策略 redis server事件模型 redis cluster mget 引发的讨论 redis 3.x windows 集群搭建 redis 命令执行过程 redis string底层数据结构 redis list底层数据结构 redis hash底层数据结构 redis set底层数据结构 redis zset底层数据结构 redis 客户端管理 redis 主从同步-slave端 redis 主从同步-master端 redis 主从超时检测 redis aof持久化 redis rdb持久化 redis 数据恢复过程 redis TTL实现原理 redis cluster集群建立 redis cluster集群选主 当slave发现自己的master变为FAIL状态时,便尝试进行Failover,以期成为新的master。由于挂掉的master可能会有多个slave。Failover的过程需要经过类Raft协议的过程在整个集群内达到一致, 其过程如下: 在作为slave角色节点会定期发送ping命令来检测master的存活性,如果检测到master未响应,那么就将master节点标记为疑似下线。 clusterHandleSlaveFailover执行重新选主的核心逻辑。 clusterHandleSlaveFailover内部通过clusterRequestFailoverAuth方法向集群当中的所有节点发送CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST报文,通知大家slave准备执行failover。 当节点收到超过n/2+1个master的response后即升级为主。 在redis主从选举过程中报文相关的解析逻辑,clusterProcessPacket内部主要处理CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST和CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK报文。redis cluster集群的源码分析(1) Redis Cluster 实现细节