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服務,因此當你大量加入服務器到連接池,沒有多余開銷