分片集群主要解决的是,海量数据存储的问题,集群中有多个master,每个master保存不同数据,并且还可以给每个master设置多个slave节点,就可以继续增大集群的高并发能力。同时每个master之间通过ping监测彼此健康状态,就类似于哨兵模式了。当客户端请求可以访问集群任意节点,最终都会被转发到正确节点。
主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决,海量数据存储问题和高并发写的问题。
使用分片集群可以解决上述问题,分片集群特征:
•集群中有多个master,每个master保存不同数据
•每个master都可以有多个slave节点
•master之间通过ping监测彼此健康状态
•客户端请求可以访问集群任意节点,最终都会被转发到正确节点
Redis集群引入了哈希槽的概念,有16384个哈希槽。集群中每个主节点绑定了一定范围的哈希槽范围,key通过CRC16校验后对16384取模来决定放置哪个槽,通过槽找到对应的节点进行存储。