Redis集群介绍
随着企业数据量的增多,Redis不论作为数据存储或是缓存,它的数据量也会逐渐增多,虽然Redis的速度非常可观,但随着其中的数据量的庞大,并且仅仅在一个设备或是一个Redis实例中,其存取速度也会大打折扣,所以我们需要在不同的设备或服务器上,搭建多个Redis实例仓库,将原来的Redis的所有的keys分发到各个服务器的Redis上,这就是现在所谓的Redis集群(Redis Cluster)。
一、原理
1、数据共享
Redis提供多个节点实例间的数据共享,也就是Redis A,B,C,D彼此之间的数据是同步的,同样彼此之间也可以通信,而对于客户端操作的keys是由Redis系统自行分配到各个节点中。
2、主从复制
Redis的多个实例间通信时,一旦其中的一个节点故障,那么Redis集群就不能继续正常工作,所以需要一种复制机制(Master-Slave)机制,做到一旦节点A故障了,那么其从节点A1和A2就可以接管并继续提供与A同样的工作服务,当然如果节点A,A1,A2节点都出现问题,那么同样这个集群不会继续保持工作,但是这种情况比较罕见,即使出现了,也会及时发现并修复使用。
建议:部署主从复制机制(Master-Slave)。
3、哈希槽值
Redis集群中使用哈希槽来存储客户端的keys,而在Redis中,目前存在16384个哈希槽,它们被全部分配给所有的节点,正如上图所示,所有的哈希槽值被节点A,B,C分配完成了。