Memcached分布式部署方案设计(含PHP代码)
代码出处:www.lanecn.com/article/main/aid-51 一台Memcache通常不能满足我们的需求,这就需要分布式部署。Memcached分布式部署方案通常会采用两种方式,一种是普通Hash分布,一种是一致性Hash分
代码出处:www.lanecn.com/article/main/aid-51
一台Memcache通常不能满足我们的需求,这就需要分布式部署。Memcached分布式部署方案通常会采用两种方式,一种是普通Hash分布,一种是一致性Hash分布。本篇将以PHP作为客户端,来分析两种方案。一种是普通HASH,一种是分布式HASH。普通HASH代码如下,一致性HASH代码和测试代码没转,请点击查看吧www.lanecn.com/article/main/aid-51
一台Memcache通常不能满足我们的需求,这就需要分布式部署。Memcached分布式部署方案通常会采用两种方式,一种是普通Hash分布,一种是一致性Hash分布。本篇将以PHP作为客户端,来分析两种方案。一种是普通HASH,一种是分布式HASH。普通HASH代码如下,一致性HASH代码和测试代码没转,请点击查看吧www.lanecn.com/article/main/aid-51
<?php function test($key='name'){ $md5 = substr(md5($key), 0, 8); $seed = 31; $hash = 0; for($i=0; $i<8; $i++){ $hash = $hash * $seed + ord($md5[$i]); } return $hash & 0x7FFFFFFF; } $mamcacheList = array( array('host'=>'192.168.1.2', 'port'=>6379), array('host'=>'192.168.1.3', 'port'=>6379), array('host'=>'192.168.1.4', 'port'=>6379), array('host'=>'192.168.1.5', 'port'=>6379), ); $key = 'username'; $value = 'lane'; //根据KEY获取hash $hash = $this->test($key); $count = count($mamcacheList); $mamcache = $mamcacheList[$hash % $count]; $mc = new Mamcached($mamcache); $mc->set($key, $value); ?>
精彩图集
精彩文章