`

memcached consistent hashing

 
阅读更多

1. telnet 127.0.0.1 11211

>> stats ---- 当前memecache的使用状态

 

2. Consistent hashing:主要贡献是缓存服务器变动时候影响最小

场景N server ===  hash(Object)%N

但是down or add server  ===  all cache disable,冲击后台服务器

单调性是指:如果一些数据已经通过hash算法分配到server缓存中,增加server后,hash的结果应该是保证原有已分配数据可以映射到新的server上,而不被映射到旧的server集合的缓冲区中。简单理解为,server数据的增减不会使得已缓存的数据全部失效(尽量不改变映射关系),或者说原有的hash算法对于已经存储的数据在server增减的情况下依然作为缓存可以取得。

平衡性是指:hash结果尽量均分到所有的缓存,高空间利用率。

Consistent hashing算法add or remove server时尽量小的改变key的映射关系,尽量满足单调性的需求。

Hash空间、key的映射到hash空间、cacheserverip或者name)映射到hash空间,key顺时针归于遇到的第一个cache,如果add or remove server时受影响的缓存数据是变化的cache到逆时针遇到的第一个cache之间的数据对象需要重新换缓存。

增加虚拟节点,数据均分到少量server上,避免大多数数据出现在一个server上的情况,例如下面

 

Hash(“202.168.14.241”);  

 

引入虚拟节点后,计算虚拟节 cache A1  cache A2  hash 值:  

 

Hash(“202.168.14.241#1”);   // cache A1  

 

Hash(“202.168.14.241#2”);   // cache A2 

分享到:
评论

相关推荐

    Consistent-Hashing:Consistent Hashing 一致哈希

    一致性哈希(Consistent Hashing)是一种分布式哈希算法,主要应用于分布式缓存、负载均衡等领域,例如在Redis、Memcached等系统中广泛使用。它解决了传统哈希算法在节点动态增减时导致的大量数据迁移问题。在Java中...

    Ketama一致性Hash算法(含Java代码) 1

    一致性哈希算法(Consistent Hashing)是一种在分布式系统中平衡数据分布的策略,尤其适用于缓存服务如Memcached或Redis。它的核心思想是通过哈希函数将对象映射到一个固定大小的环形空间中,然后将服务器也映射到这个...

    memcached全面剖析.pdf

    - Consistent Hashing是一种分布式哈希表技术,可以有效地解决节点加入和离开导致的数据迁移问题。 - 支持一致性哈希的函数库可以简化客户端的实现难度。 #### 实际应用案例 - **mixi案例研究**: - mixi是日本...

    MemCached 全面剖析 memcached.pdf(中文)

    - **Consistent Hashing 的简单说明**:通过一致性哈希算法可以确保即使节点数量发生变化,数据分布的变化也很小。 - **支持 Consistent Hashing 的函数库**:例如 Libketama。 #### 六、MemCached 应用案例 **5.1...

    Memcached分布式缓存

    - **ConsistentHashing的简单说明**:一致性哈希算法通过在虚拟环上分配节点,即使节点数量变化也不会导致大规模的数据重分布。 - **支持ConsistentHashing的函数库**:如Ketama等库提供了实现一致性哈希功能的支持...

    memcached全面剖析

    Consistent Hashing作为一种替代方案,能够更加均匀地分布数据,并且在服务器增减时最小化了缓存失效的问题。 在实际应用中,诸如mixi这样的公司通过大量使用memcached显著提高了其Web应用的性能。Memcached应用的...

    memcached的细节文档

    - **ConsistentHashing**:一致性哈希算法,即使缓存服务器数量发生变化,也只影响一小部分数据的存储位置,减少了数据重新分配的影响。 ### memcached的应用和兼容程序 - **mixi案例研究**:研究了mixi如何大规模...

    分布式Memcached在社交游戏中的应用研究.pdf

    使用Consistent Hashing算法,Memcached能够在多台服务器之间均衡地分散数据,从而提高了整个系统的可用性和容错性。在社交游戏中部署这种分布式缓存,不仅能够提升数据访问速度,还能在服务器出现故障时,快速实现...

    memcached应用疑惑

    一致性哈希算法(Consistent Hashing)是memcached用于节点管理的关键技术,其目的是在memcached集群节点变动时,尽可能减少受影响的节点数量和数据重新分配的工作量,以此实现节点的动态增加或删除而对整体性能影响...

    memcached配置

    memcached支持简单的分布式策略,如哈希一致性(consistent hashing),当新的服务器加入或离开时,数据迁移的影响最小。此外,还可以使用客户端库实现更复杂的策略,如ketama一致性哈希。 **监控和优化:** 为了...

    memcached-笔记资料.rar

    一致性哈希(Consistent Hashing)是 memcached 实现分布式存储的关键技术之一,主要解决了节点动态增删时,数据分布变化最小的问题。 1. **解决哈希冲突**:一致性哈希通过引入虚拟节点的概念,使得每个实际节点在...

    初识memcached

    3. **一致性哈希(Consistent Hashing)**: 在Memcached的分布式策略中,一致性哈希是一种常用的算法,用于在添加或删除服务器时尽可能地保持数据分布的稳定。相比于简单的余数计算,一致性哈希能更好地处理服务器...

    一致性哈希算法(ketama hashing)

    一致性哈希算法(Consistent Hashing)是一种在分布式系统中实现负载均衡的算法,尤其在分布式缓存如Memcached和Redis等场景下广泛使用。它解决了传统哈希算法在节点增减时导致的大量数据迁移问题,提高了系统的可用...

    Memcached+c#中应用一些文章

    在高并发环境下,Memcached支持一致性哈希(Consistent Hashing)策略,确保在添加或移除服务器时,对现有缓存的影响最小。一致性哈希算法能够均匀分布数据,降低“热点”现象,提高系统性能。 6. **Memcached与...

Global site tag (gtag.js) - Google Analytics