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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
检测png图片是否完整的php代码
Sep 06 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
php获取excel文件数据
Apr 21 PHP
php函数式编程简单示例
Aug 08 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文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
php中使用GD库做验证码
2016/03/31 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
js left,right,mid函数
2008/06/10 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python中的模块和包概念介绍
2015/04/13 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python操作Excel之xlsx文件
2017/03/24 Python
基于python绘制科赫雪花
2018/06/22 Python
python如何读取bin文件并下发串口
2019/07/05 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
生日庆典策划方案
2014/06/02 职场文书
会计学习心得体会
2014/09/09 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书