刚接触memcache,感觉用起来还是挺方便的,于是就整理记录一下简单的增删改查(CURD)操作。直接上代码:
创建memcache对象
$m = new Memcache; // 第一种链接方式 if(!$m->connect("127.0.0.1",11211)){ die('链接失败'); } // 第二种链接方式 if(!$m->connect("127.0.0.1:11211")){ die('链接失败'); }
一、如何添加到memcache中。
1、添加字符串
if($m->set('key1','beijing',MEMCACHE_COMPRESSED,60)){ echo '添加字符串ok<br>'; }
2、添加数值
if($m->set('key2',100,MEMCACHE_COMPRESSED,60)){ echo '添加数值ok<br>'; }
3、添加数组
在添加数组时,如果根据需要,也可以序列化serialize <=> unserialize。拓展知识序列化。
如果根据需要,也可以json_encode <=> json_decode。
$arry = ['a'=>'a','b'=>'b']; if($m->set('key3',$arry,MEMCACHE_COMPRESSED,60)){ print_r($arr); echo '添加数组ok<br>'; }
3.1添加序列化
if($m->set('keyar',serialize($arry),MEMCACHE_COMPRESSED,60)){ print_r($arr); echo '添加数组ok<br>'; } echo $m->get('keyar').'<br>'; // a:2:{s:1:"a";s:1:"a";s:1:"b";s:1:"b";}
3.2添加json
if($m->set('keyjs',json_encode($arry),MEMCACHE_COMPRESSED,60)){ echo '添加数组ok<br>'; } echo $m->get('keyjs').'<br>'; // {"a":"a","b":"b"}
3.3、添加对象
class Dog{ public $name; public $age; public function __construct($name,$age) { $this->name=$name; $this->age= $age; } } $dog = new Dog('小明',50); if($m->set('key4',$dog,MEMCACHE_COMPRESSED,60)){ echo '添加对象ok<br>'; }
4、添加布尔值
if($m->set('key5',false,MEMCACHE_COMPRESSED,60)){ echo '添加布尔值ok<br>'; }
5、添加资源类型 暂时不能使用存储资源型数据
$con = mysql_connect("127.0.0.1","root","root"); if($m->set('key6',$con,MEMCACHE_COMPRESSED,60)){ echo '添加资源ok<br>'; } $res = $m->get('key6'); var_dump($res);
二、如何获取或查询出memcache中设置的值。
1、获取字符串、数值、数组、布尔值
$str = $m->get('key1'); $num = $m->get('key2'); $arr = $m->get('key3'); $boo = $m->get('key5');
2、获取对象
$dog = $m->get('key4'); $name = $dog->name;
拓展一:
数组:$arry = ['a'=>'a','b'=>'b'];
1、序列化与反序列化
序列化是将数据保存为一串字符,包括数据的类型和数据的信息。
偏于数据的保存和传输。
例如:
a:2:{s:1:"a";s:1:"a";s:1:"b";s:1:"b";}
2、json_encode与json_decode
偏于对数据更好的处理。
例如:
{"a":"a","b":"b"}
三、数据的修改 replace()
if($m->replace('key1','hello',MEMCACHE_COMPRESSED,60)){ echo 'replace ok <br>'; }else{ echo 'replace no <br>'; } echo $m->get('key1').'<br>';
四、数据的删除 delete()
if($m->delete('key1')){ echo 'key1 delete ok'; }else{ echo 'key1 不存在'; } echo $m->get('key1').'<br>';
拓展二:
在刚学习memcache的时候,对于memcache的参数设置上面有些可能还是有点模糊,那么下面我们详细的剖析一个set的方法进行解析。
说明:
bool Memcache::set ( string $key , mixed $var [, int $flag[, int $expire ]] )
参数:
key 缓存数据的键, 其长度不能超过250个字符 var 值,整型将直接存储,其他类型将被序列化存储,其值最大为1M flag 是否使用 zlib 压缩,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时候不会采用zlib压缩,只有数据达到一定大小才对数据进行zlib压缩。(没有具体的测试数据进行压缩的最小值是多少) expire 过期时间,0 为永不过期,可使用 unix 时间戳格式或距离当前时间的秒数,设为秒数时不能大于 2592000(30 天)
注意:
1、如果把expire设置为0,表示永不过期(只要memcache不重启就一直在)。
2、如果把expire给的是秒数,则最大的为30天。30*3600*24。
3、如果希望保存的天数大于30天,那么就用 time()+31*3600*24。
返回值:
成功返回 TRUE,失败返回 FALSE。
友情提示:垃圾评论一律封号...