1.添加擴(kuò)展包
php_memcache.dll
2.在PHP.INI添加
extension=php_memcache.dll
3.程序
<?php
//創(chuàng)建一個(gè)mem對(duì)象實(shí)例
$mem=new Memcache;
if(!$mem->connect("10.18.110.213",11211)){
die('連接失敗!');
}
//增加
//1.增加一個(gè)字串
/* if($mem->set('key1',"beijing",MEMCACHE_COMPRESSED,60)){
echo '添加ok';
}*/
//2.添加數(shù)值
/* if($mem->set('key1',100,MEMCACHE_COMPRESSED,60)){
echo '添加ok';
}*/
//3.添加數(shù)組
//在添加數(shù)組是,根據(jù)需要. 希望序列號(hào)放入 ,
//serialize<=>unserialize, 如果根據(jù)需要,也可以json_encode <=> json_decode
$arr=array("bj",'tj');
if($mem->set('key1',$arr,MEMCACHE_COMPRESSED,time()+31*3600*24)){
echo '添加數(shù)組ok99111';
}
//4.添加對(duì)象
/* 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 '添加對(duì)象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('連接數(shù)據(jù)庫(kù)失敗');
}
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不存在';
}
總結(jié):
1. mem服務(wù)的數(shù)據(jù)不是同步的, 數(shù)據(jù)是分布的
2. 把什么數(shù)據(jù)放入到哪個(gè)memcached是由客戶端的mem對(duì)象決定
3. 當(dāng)執(zhí)行addServer的時(shí)候,并不是立即去連接mem服務(wù),而是通過(guò)計(jì)算,hash后才去決定連接哪個(gè)mem服務(wù),因此當(dāng)你大量加入服務(wù)器到連接池,沒(méi)有多余開銷