码迷,mamicode.com
首页 > 其他好文 > 详细

Memcache 分布式解决方案 之 : 普通 Hash 分布

时间:2014-06-27 23:00:31      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   cti   

<?php
    /* mhash 
     * 其实说白了,就是为了实现返回0或1
    */
    function mmhash($key){
        $md5  = substr(md5($key),0,8);//取该字符串的md5后的前八位
        $seed = 31;//设置步长
        $hash = 0;//初始值
        for($i=0;$i<8;$i++){
            $hash = $hash * $seed + ord($md5{$i});//ASCII 累乘
        }
        return ($hash & 0x7FFFFFFF) % 2;//取模返回
        //0x7FFFFFFF.32位最大带符号整数
    }
    $configNum = mmhash(md5(time()));//随机一个字符串
    $config = array(
        0=>array(
            ‘host‘=>‘127.0.0.1‘,
            ‘port‘=>11211
        ),
        1=>array(
            ‘host‘=>‘127.0.0.2‘,
            ‘port‘=>11211
        )
    );
    $memcache = new memcache($config[$configNum]);//实例化
?>

如上,则完成了通过计算字符串的hash后,用于动态的切换memcached服务器,但是这样的办法只限于2台服务器的时候使用!

Memcache 分布式解决方案 之 : 普通 Hash 分布,布布扣,bubuko.com

Memcache 分布式解决方案 之 : 普通 Hash 分布

标签:style   blog   color   使用   os   cti   

原文地址:http://www.cnblogs.com/shibazi/p/3811079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!