zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Memcache在PHP中的使用技巧

PHP 使用 技巧 memcache
2023-06-13 09:14:16 时间
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=newMemcache();
$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=newMemcache();
$m->connect("localhost",11211);
//连接数据库的我就不写了.
$sql="SELECT*FROMusers";
$key=md5($sql);//md5SQL命令作为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获取了.
?>