Basic method of operating memcache cache in php

高洛峰
Release: 2016-11-29 10:31:33
Original
1324 people have browsed it

缓存操作 * @update http://www.lai18.com */ class MCache extends Object implements CacheFace { private $mem = null; //Mem对象 private $sId = 1; //servier服务ID /** * 初始化Memcache * * @return Object */ public function __construct() { if ( !class_exists('Memcache') ) { throw new QException('PHP extension does not exist: Memcache'); } $this->mem = new Memcache(); } /** * 链接memcahce服务 * * @access private * @param string $key 关键字 * @param string $value 缓存内容 * @return array * @update http://www.lai18.com */ private function connect( $sid ) { $file = $this->CacheFile(); require $file; if(! isset($cache) ) { throw new QException('缓存配置文件不存在'.$file); } $server = $cache[$this->cacheId]; $sid = isset($sid) == 0 ? $this->sId : $sid;//memcache服务选择 if ( ! $server[$sid]) { throw new QException('当前操作的缓存服务器配置文件不存在'); } $host = $server[$sid]['host']; $port = $server[$sid]['port']; try { $this->mem->connect( $host , $port ); } catch (Exception $e) { exit('memecache连接失败,错误信息:'. $e->getMessage()); } } /** * 写入缓存 * * @access private * @param string $key 关键字 * @param string $value 缓存内容 * @return array */ public function set( $key , $value , $sid , $expire = 0) { $data = $this->get($key , $sid); //如果已经存在key值 if( $data ) { return $this->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire); } else { return $this->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire); } } /** * 读取缓存 * * @access private * @param string $key 关键字 * @param int $sid 选择第几台memcache服务器 * @return array */ public function get( $key , $sid) { $this->connect( $sid ); return $this->mem->get($key); } /** * 清洗(删除)已经存储的所有的元素 * * @access private * @return array */ public function flush() { $this->connect(); return $this->mem->flush(); } /** * 删除缓存 * * @access private * @param string $key 关键字 * @param int $sid 选择第几台memcache服务器 * @return array */ public function remove( $key , $sid) { $this->connect(); return $this->mem->delete($key); } /** * 析构函数 * 最后关闭memcache */ public function __destruct() { /*if(! $this->mem) { $this->mem->close(); }*/ } }
Copy after login


Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!