memcache笔记

来源:互联网 发布:网页编程待遇 编辑:程序博客网 时间:2024/05/29 11:58
通常会把数据库查询的结果集保存到 memcached 中(至于为什么这里要用到缓存,各位可以自行百度一下关键词“缓存”)
下次访问时直接从 memcached 中获取,
而不再做数据库查询操作,
这样可以在很大程度上减轻数据库的负担。

**********************
*     简单demo1      *
**********************
$m = new Memcache();
$m->connect('172.16.0.3', 8888);//多多测试缓存
$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 因为已经删掉了哦..

**********************
*     简单demo2      *
**********************
注意:通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key。
<?php
//连接memcache
$m = new Memcache();
$m->connect('localhost', 11211); //本地默认连接端口号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获取了.
?>
0 0