redis集群【redis分布式缓存_分布式寻址/扩容方案】

分布式寻址算法

  • hash 算法(大量缓存重建)
  • 一致性 hash 算法(自动缓存迁移)+ 虚拟节点(自动负载均衡)
  • redis cluster 的 hash slot 算法

简单hash算法

只要集群数量N发生变化,之前所有的hash映射全部失效,缓存全部失效

redis集群【redis分布式缓存_分布式寻址/扩容方案】_第1张图片

一致性哈希算法+虚拟节点

一致性哈希算法

  • 假设有3个node
  • 增加一个Node4,只会使Node2和Node4之间缓存失效,其他数据正常
  • 删除一个Node1,只会使Node2和Node1之间缓存失效,其他数据正常

redis集群【redis分布式缓存_分布式寻址/扩容方案】_第2张图片

数据倾斜

节点少时,数据在每个节点上分布不均匀

数据雪崩

每个节点在环上只有一个,当其中一个并发量大的节点宕机后,并发量压倒了下一个节点,该节点也顶不住压力,也宕机,其他节点也一样... ...最后集群不可用

引入虚拟节点

引入虚拟节点之后,压力分散了,解决了数据倾斜和雪崩的问题

redis集群【redis分布式缓存_分布式寻址/扩容方案】_第3张图片

拓展

redis集群【redis分布式缓存_分布式寻址/扩容方案】_第4张图片

哈希槽算法

使用哈希槽的好处:方便的添加或移除节点

  • 当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;
  • 当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了;

redis集群【redis分布式缓存_分布式寻址/扩容方案】_第5张图片

使用场景

哈希槽算法应用于redis集群模式的分布式寻址,扩容、缩容中

其他

哨兵模式由于时一主多从(主从存储一样的数据)的模式,只有一个节点提供写服务,不需要分布式寻址;

集群模式的多主多从(每个主节点存储一部分数据),需要寻址到哪一个主节点进行写操作

你可能感兴趣的:(redis)