您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

redis操作类(支持主从)

2024/3/26 4:40:16发布43次查看
基本配置文件:
array('127.0.0.1',6379), 'slaver' => array('127.0.0.1',6379));?>
操作类:
_serverconfig = $defaultconfig; } private function createredisinstance($config = array()) { if (count($config) 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教程有兴趣的朋友有所帮助。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product