• holybell
    2020-01-13
    关于思考题,使用Memcached服务器数量参与hash余数算法,会导致服务器数量增减的时候,相同的路由被重新计算到不同的机器上,这就会导致每次增删Memcached服务器的时候,会导致大量的缓存失效,针对这个问题可以采用一致性哈希算法,将所有的服务器连接成一个逻辑上的环,采用一个不会改变运算逻辑的hash函数,当一个key计算出hash值的时候落到环上的某一个点,之后顺时针找到最近的一个服务器即可,这样即使删除Memcached服务器,只会导致该服务器的缓存转移到环上下一个点的服务器上,不会导致几乎整个Memcached集群缓存的失效;同时如果是增加Memcached机器,那么相当于从环路上的某个机器匀了一部分数据到新机器上,旧机器的缓存可以配合过期策略自动删除。
     2
     9
  • 俊杰
    2020-01-13
    会导致大量缓存不命中,可以用一致性哈希算法解决
    
     1
  • 旅途
    2020-01-30
    一致性hash
    
    
  • 草原上的奔跑
    2020-01-16
    通读缓存、旁路缓存,第一次对缓存有了明确的认知。hash算法在扩缩容时会导致绝大多数缓存失效,这是它的问题。使用一致性hash算法可以降低失效缓存的数量,改善缓存的效率。但一致性hash也有自己的问题,比如平衡性问题等,又会针对这些问题提出解决方案。

    之前看一些架构性的内容,不知道为何要这样做。听了李老师娓娓道来的讲述,明白了架构的演进,心里有些底,不再是飘在空中的感觉
    
    
我们在线,来聊聊吧