通过memcache动态运行库操作memcached服务,进行CURD
具体学习参考php参考手册:
操作memcached的几种方式:
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
如果报 expire 设为0 表示,永不过期.(只要memcache不重新启动,就永远在mem中)
exprie 直接给的是秒数,则最大 30*3600*24
如果你希望保持时间超过30 time()+天数*3600*24 即可
mem1.php
<?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.添加数组 //在添加数组是,根据需要. 希望序列号放入 , //serialize<=>unserialize, 如果根据需要,也可以json_encode <=> json_decode $arr=array("bj",'tj'); if($mem->set('key1',$arr,MEMCACHE_COMPRESSED,time()+31*3600*24)){ echo '添加数组ok99111'; } //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 布尔值 ,null就是null,布尔转化为字符串 0 /* if($mem->set('key1',false,MEMCACHE_COMPRESSED,60)){ echo '添加布尔ok'; }*/ //6. 资源类型放入. /* $con=mysql_connect("127.0.0.1","root","root"); if(!$con){ die('连接数据库失败'); } var_dump($con); echo "<br/>"; 添加后资源型变量变为0 目前不支持 if($mem->set('key1',$con,MEMCACHE_COMPRESSED,60)){ echo '添加资源ok'; }*/ //查询 $val=$mem->get('key1'); var_dump($val); //修改 //可以使用replace if($mem->replace("key11",'hello',MEMCACHE_COMPRESSED,60)){ echo 'replace ok'; }else{ echo 'replace no ok'; } //删除 echo "<br/>"; if($mem->delete('key14')){ echo 'key14 删除'; }else{ echo 'key14不存在'; }
//在另外文件中取出对象时,有个注意的地方,对应php5.2这个版本会提示错误,
//对php5.3这个版本会提示 incomplete 信息, 解决方法是声明类定义即可
mem2.php
<?php //这个文件去操作memcached服务 //创建一个mem对象实例 $mem=new Memcache; if(!$mem->connect("127.0.0.1",11211)){ die('连接失败!'); } //在另外文件中取出对象时,有个注意的地方,对应php5.2这个版本会提示错误, //对php5.3这个版本会提示 incomplete 信息, 解决方法是声明类定义即可 class Dog{ public $name; public $age; public function __construct($name,$age){ $this->name=$name; $this->age=$age; } } $dog=$mem->get('key1'); var_dump($dog);
test.php 说明serilize 和 json_encode用法:
图示:
//什么时候使用serilize (将对象直接保存到文件里)什么时候使用json_encode [ajax配合]
<?php
/* class Dog{ public $name; public $age; public function __construct($name,$age){ $this->name=$name; $this->age=$age; } } $dog2=new Dog('小黄',40); //我希望把这个对象保存到磁盘. ->serilize file_put_contents("d:/my.log",serialize($dog2)); echo 'save ok!'; $dog=unserialize(file_get_contents("d:/my.log")); echo "<br/>"; echo $dog->name; $arr=array('city1'=>"bj",'city'=>"tj"); file_put_contents("d:/my2.log",json_encode($arr));*/ $host="127.0.0.1:1134"; list ($ip, $port) = explode (":", $host); echo $ip."===".$port;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。