实现Redis Cluster并实现Python链接集群
[TOC] 一、Redis Cluster简单介绍 Redis集群 搭建的方式有多种,例如Redis主从复制、Sentinel高可用集群等,但从 Redis 3.0 之后版本支持Redis-cluster集群, Redis-Cluster 采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。 其Redis-cluster结构图如下: Redis Cluster集群的运行机制: 所有的Redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 节点的Failover是通过集群中超过半数的节点检测失效时才生效。 客户端与Redis节点直连,不需要中间Proxy层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(默认slave从节点只提供备份)。 Redis-cluster把所有的物理节点映射到[0-16383]Slot上(不一定是平均分配),Cluster 负责维护node<->slot<->value。 Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个槽中。 二、背景 为了保证Redis集群的高可用性,即使使用Sentinel哨兵实现Failover自动切换,Redis每个实例也是全量存储