您好,欢迎访问一九零五行业门户网

PHP-Mmecache操作类详细介绍

下面类对memcache进行封装,包括了对memcache的添加,读取,清空,删除,获取服务器的信息,缓存服务池等。
_memcache) ? self::$_instance : false; } privatefunction__construct() {if (extension_loaded('memcache')) { $this->_memcache = new memcache(); $this->_which = 1; } elseif (extension_loaded('memcached')) { $this->_memcache = new memcached(); $this->_which = 2; } else$this->_memcache = false; } /** * 保存缓存 * @param unknown $key * @param unknown $data * @param number $ttl * @param string $iscompress * @return boolean */publicfunctionsave($key, $data, $ttl = 60,$iscompress = false){if($this->_which == 1) return$this->_memcache->set($key, array($data, time(), $ttl), !$iscompress ? 0 : memcache_compressed, $ttl);//使用time() 函数最新elseif($this->_which == 2) return$this->_memcache->set($key, array($data, time(), $ttl), $ttl); elsereturnfalse; } /** * 读取缓存信息 * @param unknown $key * @return ambigous |boolean */publicfunctionreadmetadata($key){$value = $this->_memcache->get($key); if(is_array($value) && count($value) == 3){ list($data, $time, $ttl) = $value; return (time() $time + $ttl) ? $data : array(); } else { returnfalse; } } /** * @deprecated 读取多个缓存信息 * @param array $array * @return 成功$value(array), 失败false(bool) */publicfunctionreadmultidata($keys) {if(!is_array($keys)) { returnfalse; } $rtn = array(); if($this->_which == 1) $rtn = $this->_memcache->get($keys); elseif($this->_which == 2) $rtn = $this->_memcache->getmulti($keys); $now = time(); foreach($rtnas$key=>&$v) { if(!empty($v)) { list($data, $time, $ttl) = $v; $v = ($now $time + $ttl) ? $data : array(); } } return$rtn; } /** * @description 读取缓存 * @param $key 查询索引key * @return 成功 array 失败 false */publicfunctionread($key) {$data = $this->_memcache->get($key); return is_array($data) ? $data[0] : false; } /** * @description 删除缓存 * @param $key 将要删除的key * return bool 成功 true 失败 false */publicfunctiondelete($key) {return$this->_memcache->delete($key); } /** * @description 清空所有缓存 * @return bool true or false */publicfunctionclear() {return$this->_memcache->flush(); } /** * 获取缓存服务器池中所有服务器统计信息 * @return array */publicfunctiongetextendedstats() {//return $this->_memcache->getextendedstats();if($this->_which == 1) { return$this->_memcache->getextendedstats(); } elseif($this->_which == 2) return$this->_memcache->getserverlist(); elsereturnfalse; } /** * 缓存服务器池 */publicfunctionaddserver() {foreach ($this->_memservers as$h) { $this->_memcache->addserver($h['host'], isset($h['port']) ? $h['port'] : 11211); // 默认端口为11211 } } /** * 获取memecache服务器地址 */publicfunctiongethost() {return$this->_memservers; } /** * 设置memcache服务器地址 */publicfunctionsethost(array $servers) {if (is_array($servers) && ! empty($servers)) { $this->_memservers = $servers; $this->addserver(); } } privatefunction__clone() {}}
以下是对封装类的使用方法
//初始化memcache$memcache = joememcache::getinstance(); //是否开启memcache扩展if($memcache){ //memcache的配置参数,放在配置文件中global$memserver,$memkey; //设置memecache服务器地址$memcache->sethost($memserver); //通过key读取数据$news = $memcache->readmetadata($memkey['sharetypekey']['10001']['key'].$id); //memcache没有当前key的数据,则从数据库查询并保存到memecache服务器中if(!$news){ $news = $this->getcursharenewsinfo($id); $memcache->save($memkey['sharetypekey']['10001']['key'].$id,$news,$memkey['sharetypekey']['10001']['time']); } }else{ //直接数据库查询数据$news = $this->getcursharenewsinfo($id); }
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了 php-mmecache操作类详细介绍,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息