PHP的Memcache缓存扩展演示

一、下载安装PHP的MemCache缓存,并启动

这个在上一节已经介绍了,这里不在详述

二、连接memcache服务器

<?php
    $memca=new Memcache;//实例化一个memcache对象
    $memca->connect('127.0.0.1',11211);//使用ip地址,和端口号的方式连接
    $memca->close();//使用完毕记得释放资源
?>

记得一定要开启memcache服务哦,不然会报错

三、使用memcache添加数据(包括添加和修改)

<?php
	//实例化一个memcache对象,并连接
	$memca=new Memcache;
	if(!$memca->connect('127.0.0.1',11211)) exit('连接失败');
	
	$memca->add('v1','this is test',null,0);//添加一条名为v1值为字符串的数据,存储时间为永久
	$arr=array('aaa','bbbb','ccc');
	$memca->add('v2',$arr,null,24*60*60);//添加一个数组,同理,对象也可以添加,存储时间为一天

    $memca->set('v3',123);//如果数据不存在就添加,存在则修改,这里成功添加
    $memca->set('v1','this is test2');//这里修改v1

    $memca->close();
?>

四、使用memcache读取数据

<?php
    $memca=new Memcache;//实例化一个memcache对象
    if(!$memca->connect('127.0.0.1',11211)) exit('连接失败');//ip地址,和端口号的方式连接

    /*分别获取v1 v2 v3*/
    echo '输出字符串V1的值:'.$memca->get('v1');echo "<br>";
    echo '输出数组v2的值:';
	var_dump($memca->get('v2'));echo "<br>";
	echo '输出v3的值:';
    var_dump($memca->get('v3'));echo "<br>";
    echo '一次性获取v1 v2 v3 以关联数组的形式返回';
    var_dump($memca->get(array('v1','v2','v3')));echo "<br>";

    $memca->close();
?>

五、使用memcache删除数据

<?php
    $memca=new Memcache;
    if(!$memca->connect('127.0.0.1',11211)) exit('连接失败');

    $memca->delete('v1',0);//立即删除v1,0是默认选项,这里可以不加
    $memca->delete('v2',30);//30秒内删除,但是测试的时候也是立刻删除,我也不知道为啥

    $memca->close();
	//如果像删除所有数据可以使用
	//$memca->flush();//该方法并不是真的删除所有数据,只是是所有变量过期,内存中的内容改写
?>

六、一个PHP使用memcache缓存的完整例子

 首先程序判断是否有memcache缓存,如有有直接输出,不用数据库查询,如果没有,则查询数据库,并且缓存下来,第二次访问的时候,直接内存访问。这样一来,只要之前查询过这个id,那么记录将会直接从内存中获取,就不用连接数据库进行一系列操作了。

<?php
$id=$_GET['id'];

$memca=new Memcache;
$memca->connect('127.0.0.1',11211);

if($row=$memca->get($id))//判断memcahce中是否存在该id的值,如果存在则直接从内存中返回
{
	 var_dump($row);
}
else
{
  //从数据库中获取标题
	   $conn=mysql_connect('localhost','root','root') or die("数据库连接失败".mysql_error());//链接MYsql服务器
	   mysql_select_db('xa1288_com'); mysql_query("set names utf8");
	   $sql1 = "select *  from  wl_news where id=".$id;
	  $result = mysql_query($sql1);
	  if($result && mysql_num_rows($result)>0){
		  while($res=mysql_fetch_assoc($result)){
			  $arr[]=$res;
		   }
	  }
	  $title=$arr[0]['title'];//获取标题

	  if($title!='')
	  {
		  $memca->add($id,$title);//将id为键,查询的结果为值存入memcache中
		  var_dump($title);echo "第一次查询";
	  }
	  else{
		  echo "没有记录";
	  }
  
}
$memca->close();
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第8代码农师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值