分布式memcache(取模计算)
来源:互联网 发布:国内旅游租房软件 编辑:程序博客网 时间:2024/05/21 09:28
<?Php #分布式memcache(取模计算) class GetModMemcache { private $total=''; #存储memcache服务器的总数 private $servers=array(); #存储memcache服务器的具体信息 /** * @desc 构造函数 * * @param $serversArr array | memcache服务器具体信息 */ public function __construct($serversArr) { $this->total=count($serversArr); $this->servers=$serversArr; } /** * @desc 计算$key的存储位置(即哪个服务器) * * @param string | key字符串 * * @return int 返回第几个服务器 */ protected function position($key) { #使用crc32(),将字符串转化为32为的数字 echo sprintf('%u',crc32($key))%$this->total; #取余29 return sprintf('%u',crc32($key))%$this->total; #取余29 } /** * @desc 获取memcached对象 * * @param $position int | key的位置信息 * * @return object 返回实例化memcached对象 */ protected function getMemcached($position) { $host=$this->servers[$position]['host']; #服务器池中某台服务器host $port=$this->servers[$position]['port']; #服务器池中某台服务器port $m= new memcache(); $m->addserver($host, $port); return $m; } /** * @desc 设置key-value值 * * @param string | key字符串 * @param mixed | 值可以是任何有效的非资源型php类型 * * @return 返回结果 */ public function setKey($key, $value) { $num=$this->position($key); $m=$this->getMemcached($num); #获取memcached对象 return $m->set($key, $value); } public function getKey($key) { $num=$this->position($key); $m=$this->getMemcached($num); return $m->get($key); } } $arr=array( array('host'=>'192.168.1.23', 'port'=>'11213'), array('host'=>'127.0.0.1', 'port'=>'11211'), array('host'=>'192.168.1.195', 'port'=>'11212'), ); $mod=new GetModMemcache($arr); #存储数据//$a=$mod->setKey('wang', 'ding',60);$a=$mod->setKey('xxxx', 'ssssss11111111111111111111111',60);// echo "<pre>";// print_r($a);//// echo "</pre>";die; #获取数据// $c=$mod->getKey('chen');// echo "<pre>";// print_r($c);// echo "</pre>";die; ?>
0 0
- 分布式memcache(取模计算)
- Memcache简单实践(分布式)
- memcache分布式
- memcache分布式
- memcache 分布式
- 分布式Memcache
- Memcache学习笔记(6)- memcache分布式算法 - 一致性hash
- 乘方取模计算(模幂计算)
- 分布式计算(一)
- Memcache的分布式应用
- Memcache的分布式应用
- Memcache分布式部署方案
- PHP 与Memcache 分布式
- MemCache分布式缓存
- Memcache分布式部署方案
- Memcache分布式部署方案
- Memcache分布式存储测试
- Memcache分布式部署方案
- Caffe学习系列(3):视觉层(Vision Layers)及参数
- iOS 使用高德地图SDK 加载谷歌地图切片
- JDK动态代理实现原理
- 外部中断实验-M3
- 大数据IMF传奇行动绝密课程第117课:Spark Streaming性能优化:如何最大程度的确保Spark Cluster和Kafka连接的稳定性
- 分布式memcache(取模计算)
- 登录工程一:传统 Web 应用中的身份验证技术
- xxtea算法的c++实现
- Tanks Unity Tutorial
- WPF模板-Style中的Setter
- 分位数的简单理解
- h5页面制作工具是什么?如何零代码开始微信h5页面制作!
- js 格式化日期
- Missing artifact commons-lang:commons-lang:jar:2.5 解决方案