成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php memcache 一致性hash入門

cocopeak / 1469人閱讀

摘要:一致性分步簡(jiǎn)單理解將服務(wù)器節(jié)點(diǎn)和節(jié)點(diǎn)都按照函數(shù)部署。比如四臺(tái)服務(wù)器,理想化可分布在點(diǎn)鐘四個(gè)位置。然后根據(jù)的的值,找到離他最近的服務(wù)器節(jié)點(diǎn),放入。具體參考牛人寫的一致性類

一致性hash分步簡(jiǎn)單理解:
將服務(wù)器節(jié)點(diǎn)和key節(jié)點(diǎn)都按照Crc32函數(shù)部署。
簡(jiǎn)單排序到圓環(huán)上。比如四臺(tái)服務(wù)器,理想化可分布在12 3 6 9點(diǎn)鐘四個(gè)位置。
然后根據(jù)key的crc32的值,找到離他最近的服務(wù)器節(jié)點(diǎn),放入。
希望各位前輩指教

_hash($key);
        $node=current($this->nodes);// 默認(rèn)在第一個(gè)服務(wù)器節(jié)點(diǎn)

        //通過判斷所存key的hash值,與存儲(chǔ)的服務(wù)器節(jié)點(diǎn)的key做對(duì)比,返回對(duì)應(yīng)服務(wù)器的value值
        foreach ($this->nodes as $key => $value) {
            if($point<=$key){
                $node=$value;
                break;
            }
        }
        return $node;
    }

    // 添加服務(wù)器節(jié)點(diǎn)
    public function addNode($node){
        $node_key=sprintf("%u",crc32($node));
        $this->nodes[$node_key]=$node;// 按照鍵的節(jié)點(diǎn)排序
        $this->sortNode();
    }

    public function printNodes(){
        var_dump($this->nodes);// 打印所有服務(wù)器節(jié)點(diǎn)列表
    }

    //將所有服務(wù)器安裝順序大小排序,方便存儲(chǔ)和查找
    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");

缺點(diǎn):無法均勻分部服務(wù)器節(jié)點(diǎn)(只做到了按順序)
尤其是第一臺(tái)服務(wù)器默認(rèn)存儲(chǔ)的情況下。需要引入虛擬節(jié)點(diǎn),將當(dāng)前節(jié)點(diǎn)方法N倍,這樣再排序后,當(dāng)前節(jié)點(diǎn)die掉后,可分?jǐn)倻p輕下一個(gè)節(jié)點(diǎn)遇到的壓力。
具體參考github牛人寫的php一致性hash類

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61684.html

相關(guān)文章

  • php memcache 致性hash入門

    摘要:一致性分步簡(jiǎn)單理解將服務(wù)器節(jié)點(diǎn)和節(jié)點(diǎn)都按照函數(shù)部署。比如四臺(tái)服務(wù)器,理想化可分布在點(diǎn)鐘四個(gè)位置。然后根據(jù)的的值,找到離他最近的服務(wù)器節(jié)點(diǎn),放入。具體參考牛人寫的一致性類 一致性hash分步簡(jiǎn)單理解:將服務(wù)器節(jié)點(diǎn)和key節(jié)點(diǎn)都按照Crc32函數(shù)部署。簡(jiǎn)單排序到圓環(huán)上。比如四臺(tái)服務(wù)器,理想化可分布在12 3 6 9點(diǎn)鐘四個(gè)位置。然后根據(jù)key的crc32的值,找到離他最近的服務(wù)器節(jié)點(diǎn),放入...

    Alliot 評(píng)論0 收藏0
  • PHP面試??純?nèi)容之Memcache和Redis(3)

    摘要:自己整理了一篇不同等級(jí)面試都問什么的文章,關(guān)注公眾號(hào)琉憶編程庫(kù),回復(fù)等級(jí),我發(fā)給你。 你好,是我琉憶。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。這篇文章是本周Memcache和Redis內(nèi)存數(shù)據(jù)庫(kù)常考的專題。本周一和周三更新的文章路徑:PHP面試??純?nèi)容之Memcache和Redis(1)PHP面試??純?nèi)容之Memcache和Redis(2)本周(2019.2-18至...

    Lionad-Morotar 評(píng)論0 收藏0
  • PHP面試??純?nèi)容之Memcache和Redis(3)

    摘要:自己整理了一篇不同等級(jí)面試都問什么的文章,關(guān)注公眾號(hào)琉憶編程庫(kù),回復(fù)等級(jí),我發(fā)給你。 你好,是我琉憶。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。這篇文章是本周Memcache和Redis內(nèi)存數(shù)據(jù)庫(kù)??嫉膶n}。本周一和周三更新的文章路徑:PHP面試??純?nèi)容之Memcache和Redis(1)PHP面試常考內(nèi)容之Memcache和Redis(2)本周(2019.2-18至...

    zhaochunqi 評(píng)論0 收藏0
  • 【NoSQL】memcached介紹

    摘要:簡(jiǎn)介是高性能的分布式內(nèi)存緩存服務(wù)器。一般的使用目的是,通過緩存數(shù)據(jù)庫(kù)查詢結(jié)果,減少數(shù)據(jù)庫(kù)訪問次數(shù),以提高動(dòng)態(tài)應(yīng)用的速度提高可擴(kuò)展性。當(dāng)表格滿了以后,接下來新增的資料會(huì)以機(jī)制替換掉。目前有模式和模式。 memcached簡(jiǎn)介 memcached是高性能的分布式內(nèi)存緩存服務(wù)器。一般的使用目的是,通過緩存數(shù)據(jù)庫(kù)查詢結(jié)果,減少數(shù)據(jù)庫(kù)訪問次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。 mem...

    icattlecoder 評(píng)論0 收藏0
  • memcached分布式原理與實(shí)現(xiàn)

    摘要:哈希的結(jié)果應(yīng)能夠保證原有已分配的內(nèi)容可以被映射到新的緩沖中去,而不會(huì)被映射到舊的緩沖集合中的其他緩沖區(qū)。平衡性平衡性是指哈希的結(jié)果能夠盡可能分布到所有的緩沖中去,這樣可以使得所有的緩沖空間都得到利用。 memcached分布式原理與實(shí)現(xiàn) 標(biāo)簽(空格分隔): nosql 0x01 概況 1.1 什么是memcached memcached是一個(gè)分布式,開源的數(shù)據(jù)存儲(chǔ)引擎。memcach...

    Ververica 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<