隨筆-35  評論-33  文章-0  trackbacks-0
                 為什么需要一致性hash算法?

          在緩存應用層面,如何保證數據訪問的平橫性,單調性?

          平橫性:主要是數據的平均分布,及當集群中某一個緩存服務失效,數據也能夠正常分布

          單調性:當數據插入某個緩存之后,再次調用,同樣會落到對應的緩存上面。

          兩個算法比較:

          consistent hashing:通常做法就是通過一個環狀來對緩存的key進行均橫分布,如果不能命中,查找相鄰節點。另外,通過虛擬結點部分解決

          數據的平橫性問題(不能根本解決)。因為,節點如果失效較多,數據還是不均橫。

          RendezvousHash:HRW,高可能隨機權重算法,這個算法的NB之處就在于解決了上面兩個問題。

          看圖:



          可以看出,完勝。

          我們代碼中如何操作:

          1 初始化


          2 通過KEY取對應的hash


          3 與業務中的REDIS緩存實例進行映射


          這樣,redis就可以橫向擴展了。



          我的微信公眾號,歡迎溝通學習。
          posted on 2016-03-02 18:36 alexcai 閱讀(3032) 評論(1)  編輯  收藏

          評論:
          # re: 一致性hash算法(consistent hashing and HRW ) 2016-03-11 11:13 | docker
          珠三角地區關注這方面技術的同學可以加
          QQ群479189837   回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 城固县| 崇阳县| 屏山县| 岳阳市| 绥阳县| 揭阳市| 新巴尔虎右旗| 嘉鱼县| 秦安县| 淄博市| 五指山市| 浮山县| 彭泽县| 黄山市| 登封市| 民丰县| 大兴区| 镇坪县| 岳池县| 余江县| 台安县| 灵台县| 黄石市| 文成县| 南宫市| 抚宁县| 拉萨市| 永丰县| 称多县| 舞钢市| 屏东县| 邓州市| 昌图县| 大方县| 社会| 莱西市| 常德市| 尼木县| 青铜峡市| 瑞安市| 长垣县|