redis集群分区

2020-05-27  本文已影响0人  策马踏清风

redis数据量大的时候就需要使用多个redis实例去共同存储数据。

固定取模

  1. 先把redis若干个主节点编号
Master1 : 1
Master2 : 2, 3
Master3 : 4, 5
  1. 再用hash值和编号总数量取模
hash(key) % total_virtual_weight

一致性哈希Consistent Hashing

  1. 假设有一个HSAH环,范围为2^32-1(即一个32位的无符号整形范围)
  2. 计算集群节点的HASH(通过ip,主机名之类的),并标记在HASH环上
  3. 客户端请求数据时会通过数据的HASH值向后找,找到的第一个节点处理此请求

预先分配PreSharding

  1. 部署redis时一个机器上部署多个实例
  2. 需要拓展时将一台机器上的实例分发到多台机器上,以提升性能与空间
上一篇下一篇

猜你喜欢

热点阅读