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

  • 相关阅读:
    中国国家气象局天气预报信息接口
    windows文件同步到linux
    页面元素自适应
    js对浮点数计算的bug
    ajax跨域报错
    html5使用js确定用户坐标位置
    linux下rsync服务的搭建
    linux基本指令
    js控制页面刷新大全
    pdf在浏览器的显示问题
  • 原文地址:https://www.cnblogs.com/fuyunbiyi/p/2423654.html
Copyright © 2011-2022 走看看