首页 > 代码库 > Memcache 分布式解决方案 之 : 普通 Hash 分布
Memcache 分布式解决方案 之 : 普通 Hash 分布
<?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台服务器的时候使用!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。