首页 / REDIS / redis操作类(支持主从)
redis操作类(支持主从)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了redis操作类(支持主从),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2364字,纯文字阅读大概需要4分钟。
内容图文
基本配置文件:array('127.0.0.1',6379), 'slaver' => array('127.0.0.1',6379) ); ?>
操作类:
_serverConfig = $defaultConfig; } private function createRedisInstance($config = array()) { if (count($config) < 2) { throw new Exception(strtr('Config invalid', array())); } $redis = new Redis(); $redis->connect($config[0], $config[1]); return $redis; } public function getRedisMaster() { if ($this->_redisMaster === null) { $this->_redisMaster = $this->createRedisInstance($this->_serverConfig[self::RD_MASTER]) ; } return $this->_redisMaster; } public function getRedisSlave() { if ($this->_redisSlaver === null) { $this->_redisSlaver = $this->createRedisInstance($this->_serverConfig[self::RD_SLAVER]) ; } return $this->_redisSlaver; } public function get($key, $master = false) { if(empty($key)) { return false; } $func = is_array($key) ? 'mGet' : 'get'; if($master) { $redis = $this->getRedisMaster(); }else{ $redis = $this->getRedisSlave(); } if(!$redis) { return false; } $value = $redis->$func($key); if($value === false) { return false; } return $value; } public function set($key, $value, $expire = 0) { if(empty($key)) { return false; } $redis = $this->getRedisMaster(); if(!$redis) { return false; } if($expire) { $ret = $redis->setex($key, $expire, $value); } else { $ret = $redis->set($key, $value); } if($ret === false) { return false; } return $ret; } /** * 条件形式设置缓存,如果 key 不存时就设置,存在时设置失败 * * @param string $key 缓存KEY * @param string $value 缓存值 * @return boolean */ public function setnx($key, $value){ return $this->getRedisMaster()->setnx($key, $value); } /** * 删除缓存 * * @param string || array $key 缓存KEY,支持单个健:"key1" 或多个健:array('key1','key2') * @return int 删除的健的数量 */ public function remove($key){ return $this->getRedisMaster()->delete($key); } public function __call($name,$value) { /** * 读写分离 */ $redisWrite = array('zAdd','zRem','hIncrBy','info','rename', 'rpush', 'lpop','hMset', 'sadd', 'srem', 'incr', 'spop'); $redisRead = array('zCard','zRank','zrevRank','zRevRange','hLen','hKeys','hVals','zRange','hMget','hGetAll', 'lrange', 'llen','mGet', 'smembers', 'sismember', 'scard', 'keys'); if(in_array($name,$redisWrite)) { //master $redis = $this->getRedisMaster(); return call_user_func_array(array($redis,$name),$value); } elseif(in_array($name,$redisRead)) { //slave $redis = $this->_getRedisSlave(); return call_user_func_array(array($redis,$name),$value); } } } ?>
以上就介绍了redis操作类(支持主从),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的redis操作类(支持主从)全部内容,希望文章能够帮你解决redis操作类(支持主从)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。