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 相关文章推荐
一个域名查询的程序
Oct 09 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
Oct 13 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
php微信开发之关注事件
Jun 14 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
PHP使用非对称加密算法RSA
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
PHP禁止个别IP访问网站
2013/10/30 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
详解python中的异常捕获
2020/12/15 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
客服工作职责
2013/12/11 职场文书
费用会计岗位职责
2014/01/01 职场文书
运动会开幕式解说词
2014/02/05 职场文书
党员入党表决心的话
2014/03/11 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
2014年党支部学习材料
2014/05/19 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
导游词之舟山普陀山
2019/11/06 职场文书