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 相关文章推荐
PHP 面向对象 final类与final方法
May 05 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
Yii数据库缓存实例分析
Mar 29 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
三八红旗手先进事迹材料
2014/05/13 职场文书
九九重阳节标语
2014/10/07 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
党员带头倡议书
2015/04/29 职场文书
草房子读书笔记
2015/06/29 职场文书
初二英语教学反思
2016/02/15 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers