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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
php反弹shell实现代码
Apr 22 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
laravel自定义分页效果
Jul 23 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
教师求职推荐信范文
2013/11/20 职场文书
犯错检讨书
2014/02/21 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
后天观后感
2015/06/08 职场文书
交通处罚决定书
2015/06/24 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python