PHP的Memcached簡單實現
阿新 • • 發佈:2018-12-15
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);