Redis学习_13_集群
单一服务器存在的问题
单机的redis服务器存在瓶颈,当业务的体量增大的时候,可能会无法支撑。
什么是集群
集群就是使用网络将若干计算机连通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。
集群的作用
- 分散单台服务器的访问压力,实现负载均衡。
- 分散单台服务器的存储压力,实现可扩展性。
- 降低单台服务器宕机带来的业务灾难。
集群结构的设计
数据存储设计
- 集群中的redis存储空间,一共会划分成16384个小的存储单元,这些存储单元就被称为“槽”。不管redis集群中,机器的数量如何变化,槽的数量都不会变。新加入机器时,其他机器的槽会减少,从而给新加入的机器分配槽。有机器移出集群时同理。
- 当集群需要存储数据时,会通过一个叫
CRC16(key)
的算法,把key转化为一串数字,然后把这个数字 %16384,得到这个key要存在哪个槽中。
集群内部通信设计
- 集群内部各个数据库会相互通信,保存各个库中槽的编号数据。
- 请求槽时,如果第一次就命中,则直接返回。
- 请求槽时,如果第一次没有命中,就返回具体的位置。