缓存操作
* @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();
}*/
}
} 0
0
相关文章
如何在 ACF 短代码中通过字段名动态输出不同 HTML 结构
如何在表单提交成功后隐藏提交按钮并显示成功消息
如何在 PHP 多维数组中高效搜索指定键(如 ‘title’)
如何在 PHP 多维数组中高效搜索指定键(如 title)是否存在
如何在PHP中正确调用JavaScript函数并动态设置表单值
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 高级模板编程与元编程
本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。
15
2026.01.23
热门下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章









