Memcached安裝
可以先查找一下,看看有沒有,如果沒有安裝brew請先進行安裝
#brew search memcache
MacBook-Pro:~ root$ brew search memcache
==> Searching local taps…
libmemcached memcache-top memcached memcacheq
說明和關鍵字memcache相關的有上面這四個,這樣就確認了,有我們需要的東西,第一個是客戶端,第三個是服務器。
先安裝服務器
#brew install memcached
然後安裝客戶端庫
#brew install libmemcached
啓動服務及進入服務
啓動服務
/usr/local/bin/memcached -d -m 1024 -l 127.0.0.1 -p 11211
啓動Memcache 常用參數
-p 設置TCP端口號(默認設置爲: 11211)
-U UDP監聽端口(默認: 11211, 0 時關閉)
-l 綁定地址(默認:所有都允許,無論內外網或者本機更換IP,有安全隱患,若設置爲127.0.0.1就只能本機訪問)
-c max simultaneous connections (default: 1024)
-d 以daemon方式運行
-u 綁定使用指定用於運行進程
-m 允許最大內存用量,單位M (默認: 64 MB)
-P 將PID寫入文件,這樣可以使得後邊進行快速進程終止, 需要與-d 一起使用
鏈接服務
鏈接服務:telnet 127.0.0.1 11211
退出: quit
- 1
- 2
- 3
- 4
- 5
- 6
常用命令測試
set命令:
Memcached set 命令用於將 value(數據值) 存儲在指定的 key(鍵) 中。
如果set的key已經存在,該命令可以更新該key所對應的原來的數據,也就是實現更新的作用。
語法:
set key flags exptime bytes [noreply]
value
參數說明如下:
key: 鍵值 key-value 結構中的 key,用於查找緩存值。
flags: 可以包括鍵值對的整型參數,客戶機使用它存儲關於鍵值對的額外信息 。
exptime:在緩存中保存鍵值對的時間長度(以秒爲單位,0 表示永遠)
bytes: 在緩存中存儲的字節數
noreply(可選): 該參數告知服務器不需要返回數據
value: 存儲的值(始終位於第二行)(可直接理解爲key-value結構中的value)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
add命令
Memcached add 命令用於將 value(數據值) 存儲在指定的 key(鍵) 中。
如果 add 的 key 已經存在,則不會更新數據(過期的 key 會更新),之前的值將仍然保持相同,並且您將獲得響應 NOT_STORED。
語法:add key flags exptime bytes [noreply]
value
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
replace命令
Memcached replace 命令用於替換已存在的 key(鍵) 的 value(數據值)。
如果 key 不存在,則替換失敗,並且您將獲得響應 NOT_STORED。
語法:
replace key flags exptime bytes [noreply]
value
- 1
- 2
- 3
- 4
- 5
- 6
append命令
Memcached append 命令用於向已存在 key(鍵) 的 value(數據值) 後面追加數據 。
語法:
append key flags exptime bytes [noreply]
value
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
prepend命令
Memcached prepend 命令用於向已存在 key(鍵) 的 value(數據值) 前面追加數據 。
語法:
prepend key flags exptime bytes [noreply]
value
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
CAS 命令
Memcached CAS(Check-And-Set 或 Compare-And-Swap) 命令用於執行一個”檢查並設置”的操作
它僅在當前客戶端最後一次取值後,該key 對應的值沒有被其他客戶端修改的情況下, 才能夠將值寫入。
檢查是通過cas_token參數進行的, 這個參數是Memcach指定給已經存在的元素的一個唯一的64位值。
語法:
cas key flags exptime bytes unique_cas_token [noreply]
value
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
get 命令
Memcached get 命令獲取存儲在 key(鍵) 中的 value(數據值) ,如果 key 不存在,則返回空。
語法:
get key
- 1
- 2
- 3
- 4
gets 命令
Memcached gets 命令獲取帶有 CAS 令牌存 的 value(數據值) ,如果 key 不存在,則返回空。
語法:
gets 命令的基本語法格式如下:
gets key
多個 key 使用空格隔開,如下:
gets key1 key2 key3
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
delete 命令
Memcached delete 命令用於刪除已存在的 key(鍵)。
語法:
delete 命令的基本語法格式如下:
delete key [noreply]
- 1
- 2
- 3
- 4
incr 與 decr 命令
Memcached incr 與 decr 命令用於對已存在的 key(鍵) 的數字值進行自增或自減操作。
incr 與 decr 命令操作的數據必須是十進制的32位無符號整數。
如果 key 不存在返回 NOT_FOUND,如果鍵的值不爲數字,則返回 CLIENT_ERROR,其他錯誤返回 ERROR。
incr 命令
語法:
incr 命令的基本語法格式如下:
incr key increment_value
參數說明如下:
key:鍵值 key-value 結構中的 key,用於查找緩存值。
increment_value: 增加的數值
decr 命令
decr 命令的基本語法格式如下:
decr key decrement_value
參數說明如下:
key:鍵值 key-value 結構中的 key,用於查找緩存值。
decrement_value: 減少的數值。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23