亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 邏輯算法 > 正文

MC的分布式算法的實現和一些總結

2020-03-22 18:01:39
字體:
來源:轉載
供稿:網友
  • 首先我們知道Memcached是一個分布式的緩存系統,但memcached并不像是mongodb那樣,允許配置多個節點,且節點之間是自動分配數據的

    也就是說memcached節點之間,是互不相通信的,因此,memcached的分布式,要靠用戶去設計算法,把數據分布在多個memcached節點中。

    我們來看一下常用的分布式的算法:

    1.取模算法:

    最容易想到的就是取模算法,即N個節點要從0-》n-1進行編號,key對N取模,余i,則key落在第i臺服務器上。

    就是將server的hash值與server的總臺數進行求余,即hash%N,這種方法的弊端是當增減服務器時,將會有較多的緩存需要被重新分配且會造成緩存分配不均勻的情況(有可能某一臺服務器分配的很多,其它的卻很少).

    但我們來看一下這種算法對緩存命中率的影響:

    我們假設有8臺服務器,運行中突然down一臺,則求余的底數變成7

    我們來推算一下產生的后果:

    一般地,我們從數學上歸納之:

    有N臺服務器,變成了N-1臺服務器,

    每N*(N-1)個數中,只有(n-1)個單元,%n,%(n-1)得到相同的結果

    所以 命中率在服務器down的短期內,急遽下降至1/(N-1)

    所以 服務器越多,則down機的后果越嚴重!

    我們來討論下一致性hash的算法:

    通俗理解一致性哈希:

    把各個服務器節點放在鐘表的各個時刻上,我們將Key也映射到鐘表的某個時刻上,該key沿鐘表順時針走,碰到第一個比它小的節點后,則這個key就落到這臺服務器上。

    1 疑問1:時鐘上的指針最大才11點,如果我有上百個memcached節點怎么辦?2 答: 時鐘只是為了便于理解做的比喻,在實際應用中,我們可以在圓環上分布[0,2^32-1]的數字,3 這樣,全世界的服務器都可以裝下了.4 5 疑問2:我該如何把”節點名”,”鍵名”轉化成整數?6 答: 你可以用現在的函數,如crc32().7 也可以自己去設計轉化規則,但注意轉化后的碰撞率要低.8 即不同的節點名,轉換為相同的整數的概率要低.

    好了,那我們再考慮一下當某個節點Down了之后,后產生什么樣的影響?

    當某個節點down后,只影響該節點順時針之后的1個節點,而其他節點不受影響.因此,Consistent Hashing最大限度地抑制了鍵的重新分布

    我們通過上圖看到,6號節點down后,所有的壓力都轉移到7號節點上,造成了7號節點服務器的壓力特別的大,那我們考慮是否能夠將6號節點的壓力注意到其余的節點上呢?

    所以我們引入了虛擬節點的概念:

    虛擬節點即----N個真實節點,把每個真實節點映射成M個虛擬節點, 再把M*N個虛擬節點,

    散列在圓環上. 各真實節點對應的虛擬節點相互交錯分布

    這樣,某真實節點down后,則把其影響平均分擔到其他所有節點上

    好了,上面就是一致性hash的理論知識點,接下來我們來考慮一下怎樣實現?

    下面是用php來實現的代碼:

     1 <?php 2  3  4 html' target='_blank'>class Consistent { 5         protected $_nodes = array(); 6  7         //生成一個數值   8         public function _hash($str){ 9                 return sprintf('%u',crc32($str));10         }11 12         public function find($key){13                 $point = $this->_hash($key);14                 $pos  = current($this->_nodes);15 16                 foreach($this->_nodes as $k=>$v){17                         if($point <= $k){18                                 $pos = $v;19                                 break;20                         }21                 }22                 return $pos;23         }24 25         public function addServer($server){26                 for($i=1;$i<=32;$i++){27                         $pos = $this->_hash($server.'-'.$i);28                         $this->_nodes[$pos] = $server;29                 }30 31                 ksort($this->_nodes,SORT_REGULAR);32         }33 34         public function printNodes(){35                 print_r($this->_nodes);36         }37 38 }39 40 $cons = new Consistent();41 42 $cons->addServer('a');43 $cons->addServer('b');44 $cons->addServer('c');45 46 echo $cons->_hash('name').'<br/>';47 echo '應該落在'.$cons->find('name').'<br/>';48 49 $cons->printNodes();50 ?>
    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    国产精品久久久久久久久久久久久久| 国产亚洲精品久久久久动| 精品动漫一区二区三区| 欧美精品激情在线观看| 久久久久在线观看| 国内伊人久久久久久网站视频| 亚洲免费一在线| 91牛牛免费视频| 亚洲综合成人婷婷小说| 青青a在线精品免费观看| 久久人人爽国产| 国产精品久久久久久久久粉嫩av| 国产精品国产三级国产专播精品人| 2020久久国产精品| 精品久久久久久久久中文字幕| 欧美日韩国产精品| 国产va免费精品高清在线观看| 亚洲精品久久久久中文字幕二区| 国产精品极品尤物在线观看| 国产精品91在线观看| 日韩av网址在线| 国内精品小视频在线观看| 欧美床上激情在线观看| 亚洲精品美女久久| 久久免费少妇高潮久久精品99| 国产精品视频成人| 国模gogo一区二区大胆私拍| 久久亚洲国产精品成人av秋霞| 久久亚洲精品中文字幕冲田杏梨| 中文字幕在线观看日韩| 91高清视频在线免费观看| 日韩国产欧美区| 精品偷拍一区二区三区在线看| 久久久久久999| 日韩欧美在线免费| 日韩中文字幕欧美| 91久久精品国产91性色| xvideos亚洲| 亚洲老头同性xxxxx| 亚洲一区二区三区sesese| 日韩精品免费综合视频在线播放| 欧美激情一级欧美精品| 在线免费看av不卡| 久久精品亚洲94久久精品| 日韩电影免费在线观看| 欧美激情中文字幕乱码免费| 97成人精品区在线播放| 亚洲欧美激情在线视频| 日韩中文在线观看| 欧美大片免费观看在线观看网站推荐| 国产精品自拍视频| 成人免费视频97| 亚洲视频自拍偷拍| 欧美性感美女h网站在线观看免费| 亚洲影院色在线观看免费| 亚洲一区二区三区在线免费观看| 欧美中文在线字幕| 亚洲欧美福利视频| 亚洲黄色av女优在线观看| 精品久久久久久中文字幕大豆网| 成人在线中文字幕| 亚洲国产另类久久精品| 欧美高清视频在线播放| 亚洲永久在线观看| 国产精品黄视频| 国产91对白在线播放| 欧美激情手机在线视频| 久久久亚洲网站| 亚洲激情在线观看| 精品女厕一区二区三区| 欧美成人亚洲成人日韩成人| 亚洲人成网站免费播放| 日韩在线观看高清| 成人免费自拍视频| 欧美激情视频一区二区三区不卡| 国产脚交av在线一区二区| xvideos亚洲人网站| 久久影视三级福利片| 亚洲成色www8888| 最新国产精品拍自在线播放| 久久久久久久久综合| 日韩av在线高清| 日韩在线视频观看| 亚洲欧美日韩精品| 亚洲欧洲一区二区三区在线观看| 欧美高清第一页| 69av在线播放| 91久久国产精品91久久性色| 欧美亚洲在线播放| 国产精品白嫩初高中害羞小美女| 91免费精品国偷自产在线| 69久久夜色精品国产69乱青草| 国产精品免费一区二区三区都可以| 丰满岳妇乱一区二区三区| 91精品国产九九九久久久亚洲| 欧美xxxx做受欧美.88| 久久久久一本一区二区青青蜜月| 2020久久国产精品| 久久久最新网址| 伊人青青综合网站| 欧美亚洲国产日本| 亚洲综合自拍一区| 国产精品99久久久久久人| 欧美在线观看网址综合| 国语自产偷拍精品视频偷| 国产欧美日韩专区发布| 亚洲人成网站在线播| 日韩免费高清在线观看| 日韩亚洲欧美中文在线| 国产精品日韩欧美| 久久伊人精品一区二区三区| 中文字幕精品av| 91精品国产成人| www.久久色.com| 岛国av一区二区在线在线观看| 97精品视频在线观看| 国产欧美日韩中文字幕| 欧美成人手机在线| 久久手机免费视频| 国产suv精品一区二区三区88区| 亚洲天堂久久av| 日韩av在线网址| 欧美精品videos性欧美| 亚洲欧美日韩一区在线| 日韩欧美国产激情| 亚洲欧美在线第一页| 精品中文字幕在线| 九九综合九九综合| 亚洲精品中文字| 亚洲成人精品久久久| 欧美丰满少妇xxxx| 日韩国产精品亚洲а∨天堂免| 欧美午夜精品久久久久久人妖| 日韩av片电影专区| 色天天综合狠狠色| 91精品视频免费看| 欧美大码xxxx| 91av在线影院| 日韩国产精品一区| 色视频www在线播放国产成人| 91黑丝在线观看| 午夜精品久久久久久久久久久久久| 亚洲精品欧美极品| 欧美午夜性色大片在线观看| 国产成人jvid在线播放| 日韩精品一区二区三区第95| 欧美一区二区三区免费观看| 久久天天躁日日躁| 中文字幕欧美亚洲| 久久国产精品影片| 中文字幕亚洲国产| 最新亚洲国产精品| 中文字幕少妇一区二区三区| 国产欧美久久一区二区| 亚洲激情自拍图| 正在播放欧美视频| 久久久久久久久综合| 日本韩国欧美精品大片卡二| 久久久久国产精品免费网站| 国产日本欧美一区| 狠狠干狠狠久久| 亚洲自拍欧美另类| 久久精品中文字幕一区| 欧美日韩在线第一页|