Redis学习_13_集群

单一服务器存在的问题

单机的redis服务器存在瓶颈,当业务的体量增大的时候,可能会无法支撑。

什么是集群

集群就是使用网络将若干计算机连通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。

集群的作用

  • 分散单台服务器的访问压力,实现负载均衡。
  • 分散单台服务器的存储压力,实现可扩展性。
  • 降低单台服务器宕机带来的业务灾难。

集群结构的设计

数据存储设计

  • 集群中的redis存储空间,一共会划分成16384个小的存储单元,这些存储单元就被称为“”。不管redis集群中,机器的数量如何变化,槽的数量都不会变。新加入机器时,其他机器的槽会减少,从而给新加入的机器分配槽。有机器移出集群时同理。
  • 当集群需要存储数据时,会通过一个叫 CRC16(key) 的算法,把key转化为一串数字,然后把这个数字 %16384,得到这个key要存在哪个槽中。
    Redis学习_13_集群

集群内部通信设计

  • 集群内部各个数据库会相互通信,保存各个库中槽的编号数据。
  • 请求槽时,如果第一次就命中,则直接返回。
  • 请求槽时,如果第一次没有命中,就返回具体的位置。