zoukankan      html  css  js  c++  java
  • Memcached笔记之分布式算法(idv2.com)

    wps_clip_image-20935

    1.根据余数进行分散:离散度高,但是增加或者移除服务器的时候,缓存充足的代价非常大。添加服务器后,余数就会产生巨变,这样就无法获取与保存时相同的服务器,从而音像缓存的命中率。

    2.Consistent Hashing:求出memcached服务器节点的哈希值,然后将其配置到0~2^32的圆上,然后用同样的方法求出存储数据的键的哈希,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过2^32仍然找不到服务器,就会保存到第一胎memcached服务器上。

    wps_clip_image-23551

    这样在添加一台服务器,只有在continuum上增加服务器的地点逆时针方向的第一胎服务器的键会受到影响,最大程度地抑制了键的重新分布。而且,有的Consistent Hashing的实现方法还采用了虚拟节点的思想。使用一般的hash函数的话,服务器的映射地点的分布非常不均匀。因此,使用虚拟节点的思想,为每个物理节点(服务器)在continuum上分配100~200个点。这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布。

        由服务器台数(n)和增加的服务器台数(m)计算增加服务器后的命中率计算公式:(1 ­ n/(n+m)) * 100

    wps_clip_image-26931

  • 相关阅读:
    HTML转义字符
    网站项目开发经验总结
    SQL SERVER事务处理
    5种方法在mac系统修改hosts文件
    用MPMoviePlayerController做在线音乐播放
    UISearchBar的使用心得
    10 个免费的 C/C++ 集成开发环境
    TableView有些属性的修改只能在init里面
    UIScrollView的正确使用方法
    设置UIView阴影shadow 边框 边框颜色
  • 原文地址:https://www.cnblogs.com/fuyunbiyi/p/2423654.html
Copyright © 2011-2022 走看看