PHP内存缓存Memcached类实例


Posted in PHP onDecember 08, 2014

本文实例讲述了PHP内存缓存Memcached类。分享给大家供大家参考。

具体实现方法如下:

<?PHP 

class MemcacheModel { 

private $mc = null; 

/** 

* 构造方法,用于添加服务器并创建memcahced对象 

*/ 

function __construct(){ 

$params = func_get_args(); 

$mc = new Memcache; 

//如果有多个memcache服务器 

if( count($params) > 1){ 

foreach ($params as $v){ 

call_user_func_array(array($mc, 'addServer'), $v); 

} 

//如果只有一个memcache服务器 

} else { 

call_user_func_array(array($mc, 'addServer'), $params[0]); 

}

$this->mc=$mc; 

} 

/** 

* 获取memcached对象 

* @return object memcached对象 

*/ 

function getMem(){ 

return $this->mc; 

} 

/** 

* 检查mem是否连接成功 

* @return bool 连接成功返回true,否则返回false 

*/ 

function mem_connect_error(){ 

$stats=$this->mc->getStats(); 

if(emptyempty($stats)){ 

return false; 

}else{ 

return true; 

} 

} 

 

private function addKey($tabName, $key){ 

$keys=$this->mc->get($tabName); 

if(emptyempty($keys)){ 

$keys=array(); 

} 

//如果key不存在,就添加一个 

if(!in_array($key, $keys)) { 

$keys[]=$key;  //将新的key添加到本表的keys中 

$this->mc->set($tabName, $keys, MEMCACHE_COMPRESSED, 0); 

return true;   //不存在返回true 

}else{ 

return false;  //存在返回false 

} 

} 

/** 

* 向memcache中添加数据 

* @param string $tabName 需要缓存数据表的表名 

* @param string $sql 使用sql作为memcache的key 

* @param mixed $data 需要缓存的数据 

*/ 

function addCache($tabName, $sql, $data){ 

$key=md5($sql); 

//如果不存在 

if($this->addKey($tabName, $key)){ 

$this->mc->set($key, $data, MEMCACHE_COMPRESSED, 0); 

} 

} 

/** 

* 获取memcahce中保存的数据 

* @param string $sql 使用SQL的key 

* @return mixed 返回缓存中的数据 

*/ 

function getCache($sql){ 

$key=md5($sql); 

return $this->mc->get($key); 

} 

 

/** 

* 删除和同一个表相关的所有缓存 

* @param string $tabName 数据表的表名 

*/  

function delCache($tabName){ 

$keys=$this->mc->get($tabName); 

//删除同一个表的所有缓存 

if(!emptyempty($keys)){ 

foreach($keys as $key){ 

$this->mc->delete($key, 0); //0 表示立刻删除 

} 

} 

//删除表的所有sql的key 

$this->mc->delete($tabName, 0);  

} 

/** 

* 删除单独一个语句的缓存 

* @param string $sql 执行的SQL语句 

*/ 

function delone($sql){ 

$key=md5($sql); 

$this->mc->delete($key, 0); //0 表示立刻删除 

} 

} 

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php生成随机数或者字符串的代码
Sep 05 PHP
php 表单验证实现代码
Mar 10 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
php数据访问之增删改查操作
May 09 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 #PHP
PHP模块memcached使用指南
Dec 08 #PHP
PHP原生函数一定好吗?
Dec 08 #PHP
thinkphp中ajax与php响应过程详解
Dec 08 #PHP
一款简单实用的php操作mysql数据库类
Dec 08 #PHP
php表单敏感字符过滤类
Dec 08 #PHP
php网页病毒清除类
Dec 08 #PHP
You might like
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python补齐字符串长度的实例
2018/11/15 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
利用python爬取有道词典的方法
2020/12/08 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
C# .NET面试题
2015/11/28 面试题
会计工作决心书
2014/03/11 职场文书
档案保密承诺书
2014/06/03 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
入党介绍人考察意见
2015/06/01 职场文书