memcached安裝與基本使用

一、Memcached和Memcache的區別:

網上關於Memcached和Memcache的區別的理解衆說紛紜,我個人的理解是:

Memcached是一個內存緩存系統,而Memcache是php的一個擴展,是php用於操作和管理Memcached的工具。如果安裝了Memcached但沒有安裝Memcache,php無法操控Memcached,但是可以使用命令行來操控Memcached;如果安裝了Memcache卻沒安裝Memcached,則無法使用。只有同時安裝了Memcached和Memcache,才能在PHP中使用Memcached。

二、安裝memcached:
1.由於memcached比較小,所以解壓開就可以使用.
這裏寫圖片描述
2.解壓完後爲了方便在命令行裏進行操作,我們將其加入環境變量當中.
這裏寫圖片描述

3.測試是否安裝成功:
打開cmd,進入memcached解壓後存放的目錄,運行命令:
memcached -h,若安裝成功,會出現如下界面:
這裏寫圖片描述

4.啓動memcached:
Memcached客戶端與服務器端的通信比較簡單,使用的基於廣西的協議,而不是二進制協議.(http協議也是這樣),因爲此勻通過telnet即可與memcached作交互.
打開命令行 打開telnet
命令格式:telnet host 端口

telnet 127.0.0.1 11211
這裏寫圖片描述

三、練習
1.Memcached的命令
分增刪改查4類,沿着這個思路來學習.
語法:add key flag expire length
key 給值起一個獨特的名字
flag 標誌,要求爲一個正整數
expire 有效期
length 緩存的長度(字節爲單位)

flag 的意義:
memcached 基本文本協議,傳輸的東西,理解成字符串來存儲.
想:讓你存一個 php 對象,和一個 php 數組,怎麼辦?
答:序列化成字符串,往出取的時候,自然還要反序列化成 對象/數組/json 格式等等.
這時候, flag 的意義就體現出來了.
比如, 1 就是字符串, 2 反轉成數組 3,反序列化對象…..

expire 的意義:
設置緩存的有效期,有 3 種格式
1:設置秒數, 從設定開始數,第 n 秒後失效.
2:時間戳, 到指定的時間戳後失效.
比如在團購網站,緩存的某團到中午 12:00 失效. add key 0 1379209999 6
3: 設爲 0. 不自動失效.
注: 有種誤會,設爲 0,永久有效.錯誤的.
1:編譯 memcached 時,指定一個最長常量,默認是 30 天.
所以,即使設爲 0,30 天后也會失效.
2:可能等不到 30 天,就會被新數據擠出去.

 delete 刪除
delete key [time seconds]
刪除指定的 key. 如加可選參數 time,則指刪除 key,並在刪除 key 後的 time 秒內,不允許
get,add,replace 操作此 key.
 replace 替換
replace key flag expire length
參數和 add 完全一樣,不單獨寫
 get 查詢
get key
返回 key 的值
 set 是設置和修改值
參數和 add ,replace 一樣,但功能不一樣.
如下比較:
用 add 時, key 不存在,才能建立此鍵值.
但對於已經存在的鍵,可以用 replace 進行替換/更改
repalce,key 存在時,才能修改此鍵值,如上圖,date 不存在,則沒改成功.
而 set 想當於有 add replace 兩者的功能.
set key flag expire leng 時
如果服務器無此鍵 —-> 增加的效果
如果服務器有此鍵 —-> 修改的效果.
如下圖的演示,該圖中,name 是已經存在,而 date 原本不存在. set 都可以成功設置他們.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章