zoukankan      html  css  js  c++  java
  • redis-哈希槽

    Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
    
    Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。
    
    Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽。这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集群不可用的状态。
    
    使用哈希槽的好处就在于可以方便的添加或移除节点。
    
    当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;
    
    当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了;
    
    在这一点上,我们以后新增或移除节点的时候不用先停掉所有的 redis 服务。
  • 相关阅读:
    GIL 全局解释器
    线程
    队列 Queue 与 生产者消费模型
    进程 与 并发(进程打开方式,互斥锁)
    【JAVA设计模式】单例模式
    【排序】桶排序
    【排序】选择排序
    【排序】插入排序
    【排序】冒泡排序
    JVM 优化之逃逸分析
  • 原文地址:https://www.cnblogs.com/topass123/p/13139096.html
Copyright © 2011-2022 走看看