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抽象工厂模式(Elgg)
Mar 21 PHP
7个超级实用的PHP代码片段
Jul 11 PHP
解析php中反射的应用
Jun 18 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
php实现四舍五入的方法小结
Mar 03 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 PHP
PHP实现执行外部程序的方法详解
Aug 17 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
php文件读取方法实例分析
2015/06/20 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
javascript数据类型详解
2017/02/07 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
vuex进阶知识点巩固
2018/05/20 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python实例一个类背后发生了什么
2016/02/09 Python
Python中的函数作用域
2018/05/07 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
药剂学专业应届生自荐信
2013/09/29 职场文书
社团活动总结格式
2014/08/29 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
话题作文之诚信
2019/11/28 职场文书
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android