龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

Memcached分布式部署方案设计(含PHP代码)

时间:2014-07-22 14:48来源: 作者: 点击:
分享到:
代码出处: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
<?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);
?>
精彩图集

赞助商链接