Memcache 在PHP中的使用技巧
2015-01-24信息快讯网
Memcache 在PHP中的使用
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获取了. ?>
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
php dirname(__FILE__) 获取当前文件的绝对路径
php设计模式 Facade(外观模式)
php设计模式 Factory(工厂模式)
php设计模式 Chain Of Responsibility (职责链模式)
php设计模式 Mediator (中介者模式)
php判断输入不超过mysql的varchar字段的长度范围
php的memcached客户端memcached
PHP模块 Memcached功能多于Memcache
php模块memcache和memcached区别分析
PHP 手机归属地查询 api
PHP Memcached应用实现代码
php+mysql事务rollback&commit示例
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Zend framework处理一个http请求的流程分析
php 正确解码javascript中通过escape编码后的字符
php addslashes和mysql_real_escape_string
PHP has encountered an Access Violation 错误的解决方法
基于Windows下Apache PHP5.3.1安装教程
c#中的实现php中的preg_replace
PHP strtotime函数详解
PHP XML操作类DOMDocument
PHP MYSQL乱码问题,使用SET NAMES utf8校正
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
php Memcache 中实现消息队列
php foreach、while性能比较