memcached分布式集群算法(一致性哈希实现)
来源:互联网 发布:淘宝网图书 编辑:程序博客网 时间:2024/06/05 00:11
用PHP实现memcached分布式集群算法(一致性哈希)
<?phpinterface hasher{public function _hash($str);}interface distribution{public function lookup($key);}class Consistent implements hasher,distribution{protected $_nodes = array();protected $_postion = array();protected $_mul = 64;//每个节点对应64个虚拟节点,目的是分布更均匀//把字符串转换为32位符号整数public function _hash($str){return sprintf("%u", crc32($str));}//计算掉落的节点public function lookup($key){$point = $this->_hash($key);$node = current($this->_postion);//取圆环上最小的一个节点foreach($this->_postion as $k=>$v){if($point <= $k){$node = $v;break;}}reset($this->_postion);return $node;}//添加cache服务器public function addNodes($node){//判断节点是否存在if(isset($this->_nodes[$node])){return;}for($i=0; $i<$this->_mul; $i++){$pos = $this->_hash($node.'-'.$i);$this->_postion[$pos] = $node;$this->_nodes[$node][] = $pos;}$this->_sortPos();}//减少cache服务器public function delNodes($node){//判断节点是否已经不存在了if(!isset($this->_nodes[$node])){return;}foreach($this->_nodes[$node] as $v){unset($this->_postion[$v]);}unset($this->_nodes[$node]);}//排序protected function _sortPos(){ksort($this->_postion, SORT_REGULAR);}public function getNodes(){return $this->_nodes;}public function getPostion(){return $this->_postion;}}$consistent = new Consistent();$consistent->addNodes("a");$consistent->addNodes("b");$consistent->addNodes("c");$consistent->addNodes("d");$consistent->addNodes("e");$consistent->delNodes("a");$keys = array("apple","cat","pig","dog","hit","1000");print_r($consistent->getNodes());print_r($consistent->getPostion());foreach($keys as $key){echo '此'.$key.'落在'.$consistent->lookup($key).'节点上<br/>';}
2 0
- memcached分布式集群算法(一致性哈希实现)
- memcached分布式一致性哈希算法
- memcached分布式一致性哈希算法
- Memcached集群--一致性哈希算法
- memcached分布式-一致性哈希
- memcache分布式集群算法——一致性哈希算法
- 【Memcached】使用一致性哈希实现分布式存储(一)
- 【Memcached】使用一致性哈希实现分布式存储(二)
- memcached 分布式集群算法
- memcached分布式集群算法
- memcached-分布式集群算法
- memcached:一致性哈希算法
- memcached一致性哈希算法
- 分布式一致性哈希算法
- nginx与PHP使用一致性哈希算法对memcached的集群与负载均衡
- memcached的分布式算法–一致性hash
- memcached的分布式算法–一致性
- memcached的分布式算法–一致性hash
- win7笔记本电脑计算机右键管理打开命令
- 欢迎使用CSDN-markdown编辑器
- hdu 2011
- Hust oj 1753 Triangular numbers(三角数)
- ThreadPoolExecutor
- memcached分布式集群算法(一致性哈希实现)
- 深夜学网页(5)——html(5)
- STL笔记(4)——空间配置器Allocator(二)
- 斐波那契数列与生成器
- 支持向量机SVM
- 关于TCL加载TCOM报错不能加载的问题
- struct与typedef struct区别和联系
- Android自定义回调函数
- CocoaPods版本升级