1.添加扩展包
php_memcache.dll
2.在PHP.INI添加
extension=php_memcache.dll
3.程序
复制代码 代码如下:<?php //创建一个mem对象实例 $mem=new Memcache; if(!$mem->connect("10.18.110.213",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 布尔值/* 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/>"; if($mem->set("key1",$con,MEMCACHE_COMPRESSED,60)){ echo "添加资源ok"; }*/
//查询 $val=$mem->get("key1");//修改 //可以使用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不存在"; }
总结:
1. mem服务的数据不是同步的, 数据是分布的
2. 把什么数据放入到哪个memcached是由客户端的mem对象决定
3. 当执行addServer的时候,并不是立即去连接mem服务,而是通过计算,hash后才去决定连接哪个mem服务,因此当你大量加入服务器到连接池,没有多余开销