微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Memcache 在PHP中的使用技巧

add($key,$value,$expiry);
$key: 唯一标识,用于区分写入的数据
$value: 要写入的数据
$expiry: 过期时间,认为永远有效
用途: 将数据写入到memcache中 get($key)
$key: 通过写入时的$key获取对应的数据
用途: 获取memcache中的数据 replace($key,$expiry)
方法参数与add方法的参数相同
用途也很明显就是替换数据 delete($key,$time = 0)
$key: 唯一标识
$time: 延迟时间
用途: 删除memcache中存储的数据 下面来看看具体用法:
add($key,$time = 0)
$key: 唯一标识
$time: 延迟时间
用途: 删除memcache中存储的数据 下面来看看具体用法: 代码
<div class="codetitle"><a style="CURSOR: pointer" data="16227" class="copybut" id="copybut16227" onclick="doCopy('code16227')"> 代码如下:

<div class="codebody" id="code16227">
<?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 来缓存数据库查询结果集的示例
代码
<div class="codetitle"><a style="CURSOR: pointer" data="7941" class="copybut" id="copybut7941" onclick="doCopy('code7941')"> 代码如下:
<div class="codebody" id="code7941">
<?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获取了.
?>

原文地址:https://www.jb51.cc/php/28802.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐