一致性环Hash算法.NET实现
生活随笔
收集整理的這篇文章主要介紹了
一致性环Hash算法.NET实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一致性環(huán)Hash算法有一個(gè)大用處就是解決Memcache服務(wù)器down機(jī)問(wèn)題的。目的是增加或者移除Memcache服務(wù)器后,最大限度的減少所受影響。
理論方面的就不介紹了,網(wǎng)上有太多資料了,請(qǐng)大家自己搜索搜索。
在此寫了一個(gè)ConsistencyRing類來(lái)實(shí)現(xiàn)算法,具體代碼在此下載。
測(cè)試類如下:
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中的參數(shù)為了演示,因此改成了簡(jiǎn)潔的數(shù)字string,大家使用時(shí)完全可以用192.168.1.1這樣的string來(lái)傳。?
運(yùn)行結(jié)果:
可以看到,增加刪除節(jié)點(diǎn)后,都不會(huì)影響不相關(guān)節(jié)點(diǎn)。?
點(diǎn)擊代碼下載
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/aarond/p/ConsistencyRingHash.html
總結(jié)
以上是生活随笔為你收集整理的一致性环Hash算法.NET实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 荣耀 90 / Pro 系列手机开启预约
- 下一篇: (转)WPF中让窗体不显示最大化,最小化