一致性环Hash算法.NET实现
生活随笔
收集整理的這篇文章主要介紹了
一致性环Hash算法.NET实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一致性環Hash算法有一個大用處就是解決Memcache服務器down機問題的。目的是增加或者移除Memcache服務器后,最大限度的減少所受影響。
理論方面的就不介紹了,網上有太多資料了,請大家自己搜索搜索。
在此寫了一個ConsistencyRing類來實現算法,具體代碼在此下載。
測試類如下:
public static void Test(){{ConsistencyRing cr = new ConsistencyRing();Console.WriteLine("=============AddServer Test=============");cr.AddServer("1");cr.AddServer("5");cr.AddServer("9");cr.AddServer("11");cr.AddServer("3");Console.WriteLine("=============RemoveServer Test=============");cr.RemoveServer("5");cr.RemoveServer("3");cr.RemoveServer("1");cr.RemoveServer("9");}{ConsistencyRing cr = new ConsistencyRing();cr.AddServer("1");cr.AddServer("5");cr.AddServer("9");cr.AddServer("11");cr.AddServer("3");Console.WriteLine("=============GetServerIp Test=============");string key;string serverIp;key = "A1";serverIp = cr[key];Console.WriteLine("A1所在IP:" + serverIp);cr.RemoveServer("9");serverIp = cr[key];Console.WriteLine("A1所在IP:" + serverIp);}}上面AddServer/RemoveServer中的參數為了演示,因此改成了簡潔的數字string,大家使用時完全可以用192.168.1.1這樣的string來傳。?
運行結果:
可以看到,增加刪除節點后,都不會影響不相關節點。?
點擊代碼下載
?
?
轉載于:https://www.cnblogs.com/aarond/p/ConsistencyRingHash.html
總結
以上是生活随笔為你收集整理的一致性环Hash算法.NET实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荣耀 90 / Pro 系列手机开启预约
- 下一篇: 英雄联盟2021泰隆怎么打野 LOL刀锋