利用一致性雜湊的memcached類

2021-06-27 07:45:45 字數 2018 閱讀 3989

配置檔案可選則

class memcachedconfig

memcachedconfig::$serverconfig = array(

'single' => array(

array('ip'=>'192.168.1.1', 'port'=>'11211'),

),'multi' => array(

array('ip'=>'192.168.1.1', 'port'=>'11211', 'rate' => 50),

array('ip'=>'192.168.1.2', 'port'=>'11211', 'rate' => 50),

),'hashmap' => array(

array('ip'=>'192.168.1.1', 'port'=>'11211'),

array('ip'=>'192.168.1.2', 'port'=>'11211'),

),); memcachedconfig::$classnameconfig = array(

'single' => 'memcached_single',

'multi' => 'memcached_multi',

'hashmap' => 'memcached_hashmap',

);

主要利用利用crc32生成隨機數的閉環結構

require_once('memcachedconfig.class.php');

class memcached_hashmap

foreach ($serconf as $key => $value)

}ksort($this->_node);

} }/**

* 根據key連線一台memcached

* @param string $key

*/private function _connectmemcache($key)

$nodekey = $this->_findservernode();

list($config, $num) = explode('_', $this->_node[$nodekey]);

if (!$config)

return false;

//如果沒宣告memcached則宣告

if (!isset($this->_memcached[$config]))

return $this->_memcached[$config];

}/**

* 二分法從虛擬節點中查詢最近的節點

* @param int $m

* @param int $b

*/private function _findservernode($m = 0, $b = 0)

$total = count($this->_nodedata);

if ($total != 0 && $b == 0)

$b = $total - 1;

if ($m < $b)

if (abs($this->_nodedata[$b] - $this->_keynode) < abs($this->_nodedata[$m] - $this->_keynode))

return $this->_nodedata[$b];

else

return $this->_nodedata[$m];

}public function set($key, $value, $expire = 0)

public function add($key, $value, $expire = 0)

public function get($key)

public function delete($key)

}

$key = 'zhifeng';

var_dump($ret);

一致性雜湊

直接貼出一篇介紹的很清楚的博文。關鍵字一致性雜湊 平衡性,單調性,分散性,負載 其實說白了,就是解決把請求分散到不同的機器上運算,怎麼做分散的平均,機器少一台多一台,或者壞掉一台,成很好的自適應和拓展。最簡單的實現分布式演算法,取模嘛,但是它就上述的一些問題,所以不算好的雜湊函式。一致性雜湊演算法,...

一致性雜湊

from 學習分布式,一致性雜湊是最最基礎的知識,所以要理解好.那什麼是一致性雜湊呢?what 1.平衡性是指 hash的結果應該平均分配到各個節點,這樣從演算法上就解決了負載均衡問題.2.單調性是指 在新增或者刪減節點時,同乙個key訪問到的值總是一樣的.3.分散性是指 資料應該分散的存放在 分布...

一致性雜湊

一致性 雜湊演算法在1997年由 麻省理工學院提出 參見擴充套件閱讀 1 設計目標是為了解決網際網路中的熱點 hot spot 問題,初衷和 carp十分類似。一致性雜湊修正了carp使用的簡單雜湊演算法帶來的問題,使得dht可以在p2p環境中真正得到應用。雜湊演算法 編輯 一致性雜湊提出了在動態變...