1. 程式人生 > >PHP的Memcached簡單實現

PHP的Memcached簡單實現

Memcached 是一個高效能的分散式記憶體物件快取系統,用於動態Web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動網站的速度。也可動態快取一些實時資料。

memcached伺服器安全的問題,其本身是沒有安全認證的,所以資料安全方面可以考慮只進行內網訪問、監聽IP、修改預設埠等方法。

筆者使用win10環境簡單演示和使用。

 

安裝:

http://downloads.northscale.com/memcached-win64-1.4.4-14.zip

預設埠為:11211

以管理員身份執行cmd:

 

 

安裝:壓縮包解壓後儲存路徑\memcached.exe -d install

解除安裝:壓縮包解壓後儲存路徑\memcached.exe -d uninstall

啟動服務:壓縮包解壓後儲存路徑\memcached.exe -d start

停止服務:壓縮包解壓後儲存路徑\memcached.exe -d stop

檢視幫助:壓縮包解壓後儲存路徑\memcached.exe -h

 

命令列基本測試:

連線伺服器:telnet localhost 11211

//不可輸入中文

檢視狀態:stats

新增資料:add dong 33 0 10 //dong為鍵,33為隨意標記,0為永久儲存,其他為x秒,10為10個位元組

替換資料:set

獲取資料:get dong   //dong 為鍵

刪除資料:delete dong //dong為鍵

刪除所有:flush_all

錯誤資訊:

ERROR:普通錯誤資訊,如指令錯誤

CLIENT_ERROR : 客戶端錯誤

SERVER_ERROR : 伺服器錯誤

PHP基本操作:

 1 //建立連線物件
 2 $men=new Memcache;
 3 //連線伺服器
 4 $men->connect("localhost","11211");
 5 
 6 //新增
 7 //返回bool
 8 // MEMCACHE_COMPRESSED 壓縮儲存
9 //0為永久,其他值為秒,不能超過30天的秒數,如果要超過30天則需要用當前時間戳(time())+xxx秒 10 $men->add("dxd","dongxiaodong",MEMCACHE_COMPRESSED,0); 11 //新增陣列資料 12 $men->add("arr",array("11","222","yyy"),MEMCACHE_COMPRESSED,0); 13 //修改 14 //返回bool 15 $men->set("dd",iconv("utf-8","gbk","東小東"),MEMCACHE_COMPRESSED,0); 16 //取值 17 echo $men->get("dxd"); 18 //多個值一起取 19 print_r($men->get(array("dxd","dd"))); 20 //獲取存入的陣列 21 print_r($men->get("arr")); 22 //刪除某個,0為立即刪除,其它為等待xx秒刪除 23 $men->delete("arr",3); 24 //清空所有 25 $men->flush(); 26 27 //關閉連線 28 $men->close();

分散式簡單實現:

1 //建立連線物件
2 $men=new Memcache;
3 
4 //連線伺服器
5 //多伺服器,資料存取與普通一樣
6 $men->addserver("localhost",11211);
7 $men->addserver("192.168.4.30",11211);