【介紹】:
Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據 庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
【特點】:
1. 協議簡單
2. 基於libevent的事件處理
3. 內置內存存儲方式
4. 采用不互相通信的分布式
【缺點】:
1. 重啟memcached服務器或者操作系統會使數據消失
2. 內存容量達到指定值之後,就會使用LRU算法自動刪除不使用或者很少使用的緩存。
Memcached啟動選項:
選項
描述
-d
以守護程序(daemon)方式運行memcached
-m
設置memcached可以使用內存的大小,單位為MB
-l
設置監聽的IP地址
-p
設置監聽的端口,默認為11211
-u
指定用戶,通常使用該選項指定為root用戶
啟動memcached:
Memcached –vvv
Memcached客戶端與服務器端的通信使用文本協議,可以使用telnet與memcached交互。
如:telnet127.0.0.1 11211(memcached默認端口是11211)
按下ctrl + ] 打開回顯功能。
Memcached命令:
1. 增:add往內存中增加一行新紀錄
語法:add key flag expire length
1)Key:值的名字
2)Flag:標志,是一個正整數
當往內存中存數組或者對象等時,就需要flag標志。序列化成字符串,取出時反序列化成相應的格式。
1. 字符串
2. 反轉成數組
3. 反序列化對象
3)Expire:有效期,N秒後結束。設為0不自動失效,但30天後失效,也有可能被新數據擠出去。
設置10秒後失效:
4)Length:緩存的長度,字節為單位
2. 刪
可以加上秒數,讓該key在N秒內不能使用,使網站上的頁面緩存代謝完畢。
Replace可對於已經存在的鍵進行更改。
Set命令有add和replace兩者的功能。沒有鍵可以增加,有可以更改。
Incr和decr命令:
把值當成32位無符號位來操作。
應用場景:
秒殺功能,秒殺主要在內存功能,速度很快。
Stats :統計命令
a. pid:memcached運行的進程號
b. uptime:運行時間
c. time:當前的時間戳
d. version:當前版本
e. total_items:歷史存儲的鍵數
f. curr_items:當前存儲的鍵數
g. cmd_get:總共向memcached服務器請求的次數
h. get_hits:響應成功的次數
i. get_misses:失敗的次數
通過這三個可以求出緩存命中率。命中率越高越優秀。
Flush_all:清除緩存對象(慎用);