美文网首页
redis集群分区

redis集群分区

作者: 策马踏清风 | 来源:发表于2020-05-27 16:03 被阅读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值向后找,找到的第一个节点处理此请求
    • 优点:相对于固定取模,删除节点或节点宕机所影响的数据更少。
    • 缺点: 删除节点时还是需要计算所有该节点的key,另外算出来的节点Hash值也可能导致数据分布不均匀的现象。

    预先分配PreSharding

    • 过程
    1. 部署redis时一个机器上部署多个实例
    2. 需要拓展时将一台机器上的实例分发到多台机器上,以提升性能与空间
    • 优点:增长过程中redis的实例数保持不变
    • 缺点:实例多,增加了运维成本

    相关文章

      网友评论

          本文标题:redis集群分区

          本文链接:https://www.haomeiwen.com/subject/cgwyahtx.html