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预定义常量
Dec 25 PHP
php中去除所有js,html,css代码
Oct 12 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
php防注入及开发安全详细解析
Aug 09 PHP
php打印一个边长为N的实心和空心菱型的方法
Mar 02 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
PHP输出XML格式数据的方法总结
Feb 08 PHP
php防止sql注入的方法详解
Feb 20 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
TP5框架安全机制实例分析
Apr 05 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删除目录及目录下所有文件的方法详解
2013/06/06 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
Python常用小技巧总结
2015/06/01 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python实现大学人员管理系统
2019/10/25 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
详解Flask前后端分离项目案例
2020/07/24 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
写好自荐信的技巧
2013/11/08 职场文书
前处理班长职位说明书
2014/03/01 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
OpenCV实现普通阈值
2021/11/17 Java/Android
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis