為什么需要一致性hash算法?
在緩存應用層面,如何保證數據訪問的平橫性,單調性?
平橫性:主要是數據的平均分布,及當集群中某一個緩存服務失效,數據也能夠正常分布
單調性:當數據插入某個緩存之后,再次調用,同樣會落到對應的緩存上面。
兩個算法比較:
consistent hashing:通常做法就是通過一個環狀來對緩存的key進行均橫分布,如果不能命中,查找相鄰節點。另外,通過虛擬結點部分解決
數據的平橫性問題(不能根本解決)。因為,節點如果失效較多,數據還是不均橫。
RendezvousHash:HRW,高可能隨機權重算法,這個算法的NB之處就在于解決了上面兩個問題。
看圖:
可以看出,完勝。
我們代碼中如何操作:
1 初始化
2 通過KEY取對應的hash
3 與業務中的REDIS緩存實例進行映射
這樣,redis就可以橫向擴展了。
我的微信公眾號,歡迎溝通學習。
posted on 2016-03-02 18:36
alexcai 閱讀(3020)
評論(1) 編輯 收藏