摘要:一致性分步簡單理解將服務器節點和節點都按照函數部署。比如四臺服務器,理想化可分布在點鐘四個位置。然后根據的的值,找到離他最近的服務器節點,放入。具體參考牛人寫的一致性類
一致性hash分步簡單理解:
將服務器節點和key節點都按照Crc32函數部署。
簡單排序到圓環上。比如四臺服務器,理想化可分布在12 3 6 9點鐘四個位置。
然后根據key的crc32的值,找到離他最近的服務器節點,放入。
希望各位前輩指教
_hash($key); $node=current($this->nodes);// 默認在第一個服務器節點 //通過判斷所存key的hash值,與存儲的服務器節點的key做對比,返回對應服務器的value值 foreach ($this->nodes as $key => $value) { if($point<=$key){ $node=$value; break; } } return $node; } // 添加服務器節點 public function addNode($node){ $node_key=sprintf("%u",crc32($node)); $this->nodes[$node_key]=$node;// 按照鍵的節點排序 $this->sortNode(); } public function printNodes(){ var_dump($this->nodes);// 打印所有服務器節點列表 } //將所有服務器安裝順序大小排序,方便存儲和查找 public function sortNode(){ ksort($this->nodes,SORT_REGULAR); } } $c=new Consitent(); $c->addNode("a"); $c->addNode("b"); $c->addNode("c"); $c->printNodes(); echo $c->_hash("name"); echo $c->lookup("name");
缺點:無法均勻分部服務器節點(只做到了按順序)
尤其是第一臺服務器默認存儲的情況下。需要引入虛擬節點,將當前節點方法N倍,這樣再排序后,當前節點die掉后,可分攤減輕下一個節點遇到的壓力。
具體參考github牛人寫的php一致性hash類
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21407.html
摘要:一致性分步簡單理解將服務器節點和節點都按照函數部署。比如四臺服務器,理想化可分布在點鐘四個位置。然后根據的的值,找到離他最近的服務器節點,放入。具體參考牛人寫的一致性類 一致性hash分步簡單理解:將服務器節點和key節點都按照Crc32函數部署。簡單排序到圓環上。比如四臺服務器,理想化可分布在12 3 6 9點鐘四個位置。然后根據key的crc32的值,找到離他最近的服務器節點,放入...
摘要:自己整理了一篇不同等級面試都問什么的文章,關注公眾號琉憶編程庫,回復等級,我發給你。 你好,是我琉憶。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。這篇文章是本周Memcache和Redis內存數據庫常考的專題。本周一和周三更新的文章路徑:PHP面試常考內容之Memcache和Redis(1)PHP面試常考內容之Memcache和Redis(2)本周(2019.2-18至...
摘要:自己整理了一篇不同等級面試都問什么的文章,關注公眾號琉憶編程庫,回復等級,我發給你。 你好,是我琉憶。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。這篇文章是本周Memcache和Redis內存數據庫常考的專題。本周一和周三更新的文章路徑:PHP面試常考內容之Memcache和Redis(1)PHP面試常考內容之Memcache和Redis(2)本周(2019.2-18至...
摘要:簡介是高性能的分布式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態應用的速度提高可擴展性。當表格滿了以后,接下來新增的資料會以機制替換掉。目前有模式和模式。 memcached簡介 memcached是高性能的分布式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。 mem...
摘要:哈希的結果應能夠保證原有已分配的內容可以被映射到新的緩沖中去,而不會被映射到舊的緩沖集合中的其他緩沖區。平衡性平衡性是指哈希的結果能夠盡可能分布到所有的緩沖中去,這樣可以使得所有的緩沖空間都得到利用。 memcached分布式原理與實現 標簽(空格分隔): nosql 0x01 概況 1.1 什么是memcached memcached是一個分布式,開源的數據存儲引擎。memcach...
閱讀 3409·2021-09-22 16:00
閱讀 3452·2021-09-07 10:26
閱讀 2989·2019-08-30 15:55
閱讀 2858·2019-08-30 13:48
閱讀 1366·2019-08-30 12:58
閱讀 2162·2019-08-30 11:15
閱讀 945·2019-08-30 11:08
閱讀 525·2019-08-29 18:41