温馨提醒

亲爱的游客,你的浏览器太旧啦.都啥年代了.为了你的安全,为了你的体验,为更好的浏览本页, 赶紧更新一把吧.....本博客不支持ie8以下浏览器,如果你使用的是ie浏览器,请您更新到ie8或以上版本.

推荐使用谷歌浏览器(chrome)或火狐浏览器(Firefox),点击下方按键进行安装

码农部落

  ——好记性,不如烂博客!

php操作memcached

<?php
	//创建一个mem 对象实例
	$mem = new Memcache();
	if (!$mem->connect("127.0.0.1",11211)) {
		die("连接失败");	
	}

	//1、增加字串
	/*if ($mem->set('key1',"beijing",MEMCACHE_COMPRESSED,60)) {
		echo '添加ok';
	}*/

	//2添加数值
	/*if ($mem->set('key1',100,MEMCACHE_COMPRESSED,60)) {
		echo '添加数值ok';
	}*/

	//3.添加数组
	/*$arr=array("bj",'tj');
	if($mem->set('key1',$arr,MEMCACHE_COMPRESSED,time()+31*3600*24)){
		echo '添加数组ok';
	}*/

	//4.添加对象
	/*class Dog{
		public $name;
		public $age;
		public function __construct($name,$age){
			$this->name=$name;
			$this->age=$age;
		}
	}
	$dog1=new Dog('小狗',50);
	if($mem->set('key1',$dog1,MEMCACHE_COMPRESSED,60)){
		echo '添加对象ok';
	}*/

	//5.添加null 布尔值
	/*if($mem->set('key1',false,MEMCACHE_COMPRESSED,60)){
		echo '添加布尔ok';
	}*/

	//6. 资源类型放入.
	/*$con=mysql_connect("127.0.0.1","root","root");
	if(!$con){
		die('连接数据库失败');
	}
	if($mem->set('key1',$con,MEMCACHE_COMPRESSED,60)){
		echo '添加资源ok';
	}*/

	//7、修改
	/*if($mem->replace("key1",'hello',MEMCACHE_COMPRESSED,60)){
		echo 'replace ok';
	}else{
		echo 'replace no ok';
	}*/

	//删除
	if($mem->delete('key14')){
		echo 'key14 删除';
	}else{
		echo 'key14不存在';
	}

	//查询
	$val=$mem->get('key1');
	var_dump($val);
?>

提示:

在对数组或者是对象进行操作的时候,可以将它序列化(serialize),保存到memcache里,取出来的时候再反序列化(unserialize)就行了。如果根据需要,也可以json_encode <=> json_decode,下面是个例子:

$arr=array("bj",'tj');
	if($mem->set('key1',serialize($arr),MEMCACHE_COMPRESSED,time()+31*3600*24)){

		echo '添加数组ok99111';
	}
        $val=$mem->get('key1');
	var_dump(unserialize($val));

细节

在我们添加数据的时候,模式一般如下:
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
string $key 代表键名
mixed $var  代表键名对应的值
int  $flag  标志位,0为压缩,MEMCACHE_COMPRESSED为压缩
int $expire为要保存的时间
如果报 expire 设为0 表示,永不过期.(只要memcache不重新启动,就永远在mem中)
exprie 直接给的是秒数,则最大 30*3600*24(最多可以保存30天,如果超过30天,要用时间戳的方式)
如果你希望保持时间超过30  time()+天数*3600*24 (时间戳的方式)