Memcache 在PHP中的使用技巧


Posted in PHP onFebruary 08, 2010

add($key, $value, $expiry);
$key: 唯一标识, 用于区分写入的数据
$value: 要写入的数据
$expiry: 过期时间, 默认为永远有效
用途: 将数据写入到memcache中

get($key)
$key: 通过写入时的$key获取对应的数据
用途: 获取memcache中的数据

replace($key, $value, $expiry)
该方法参数与add方法的参数相同
用途也很明显就是替换数据

delete($key, $time = 0)
$key: 唯一标识
$time: 延迟时间
用途: 删除memcache中存储的数据

下面来看看具体用法:
add($key, $value, $expiry);
$key: 唯一标识, 用于区分写入的数据
$value: 要写入的数据
$expiry: 过期时间, 默认为永远有效
用途: 将数据写入到memcache中

get($key)
$key: 通过写入时的$key获取对应的数据
用途: 获取memcache中的数据

replace($key, $value, $expiry)
该方法参数与add方法的参数相同
用途也很明显就是替换数据

delete($key, $time = 0)
$key: 唯一标识
$time: 延迟时间
用途: 删除memcache中存储的数据

下面来看看具体用法:

代码

<?php 
$m = new Memcache(); 
$m->connect('localhost', 11211); 
$data = 'content'; //需要缓存的数据 
$m->add('mykey', $data);echo $m->get('mykey'); // 输出 content 
$m->replace('mykey', 'data'); //替换内容为dataecho $m->get('mykey');//输出 data 
$m->delete('mykey'); //删除echo $m->get('mykey'); //输出 false 因为已经删掉了哦.. 
?>

是不是很简单.. 在实际应用中,通常会把数据库查询的结果集保存到 memcached 中
下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担。
通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key。下边是一个利用 memcached 来缓存数据库查询结果集的示例
代码

<?php 
//连接memcache 
$m = new Memcache(); 
$m->connect('localhost', 11211); 
//连接数据库的我就不写了. 
$sql = 'SELECT * FROM users'; 
$key = md5($sql); //md5 SQL命令 作为 memcache的唯一标识符 
$rows = $m->get($key); //先重memcache获取数据 
if (!$rows) { 
//如果$rows为false那么就是没有数据咯, 那么就写入数据 
$res = mysql_query($sql); 
$rows = array(); 
while ($row = mysql_fetch_array($res)) { 
$rows[] = $row; 
} 
$m->add($key, $rows); 
//这里写入重数据库中获取的数据, 可以设置缓存时间, 具体时间设置多少, 根据自己需求吧. 
} 
var_dump($rows); //打印出数据 
//上面第一次运行程序时, 因为还没有缓存数据, 所以会读取一次数据库, 当再次访问程序时, 就直接重memcache获取了. 
?>
PHP 相关文章推荐
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
php 进度条实现代码
Mar 10 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php自定义session示例分享
Apr 22 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
PHP经典实用正则表达式小结
May 04 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 PHP
PHP Memcached应用实现代码
Feb 08 #PHP
两个开源的Php输出Excel文件类
Feb 08 #PHP
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 #PHP
php+mysql事务rollback&amp;commit示例
Feb 08 #PHP
php 生成随机验证码图片代码
Feb 08 #PHP
劣质的PHP代码简化
Feb 08 #PHP
php下把数组保存为文件格式的实例应用
Feb 08 #PHP
You might like
php异常处理技术,顶级异常处理器
2012/06/13 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php表单敏感字符过滤类
2014/12/08 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
python中的多线程实例教程
2014/08/27 Python
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
python远程邮件控制电脑升级版
2019/05/23 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
销售员自我评价怎么写
2013/09/19 职场文书
厂区绿化方案
2014/05/08 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
高考学习决心书
2015/02/04 职场文书
导师工作推荐信
2015/03/27 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
python实现自定义日志的具体方法
2021/05/28 Python