MemCache 入門極簡教程 頂 原

MemCache 概述

MemCache雖然被稱爲”分佈式緩存”,但是MemCache本身完全不具備分佈式的功能

Memcache 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高了網站訪問的速度。 MemCaChe是一個存儲鍵值對的HashMap,在內存中對任意的數據(比如字符串、對象等)所使用的key-value存儲,數據可以來自數據庫調用、API調用,或者頁面渲染的結果。MemCache設計理念就是小而強大,它簡單的設計促進了快速部署、易於開發並解決面對大規模的數據緩存的許多難題,而所開放的API使得MemCache能用於Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序語言。

MemCache作用流程圖

MemCache 安裝

Windows 下安裝 MemCache

  1. 點擊下載 安裝包
  2. 解壓下載後的文件

解壓後的文件內容

  1. 使用管理員身份運行cmd 並切換到上一步解壓後的目錄下, 運行命令 memcached -d install 來把memcache安裝爲系統服務, 運行命令 memcached -d start 來啓動服務

把memcache安裝爲系統服務

啓動服務

  1. 如果成功,則可以在系統服務上看到 memcache 服務, memcache默認在localhost的11211端口上啓動了一個實例

在系統服務上查看 memcache 服務

  1. 在cmd 下輸入命令 telnet localhost 11211 來連接 memcache 實例

輸入命令 telnet localhost 11211 來連接 memcache 實例

Ubuntu 下安裝 MemCache

  1. 使用命令 sudo apt-get install -y memcached 來安裝memcache
  2. 安裝完成後默認會在 localhost:11211 上啓動一個默認實例
  3. 使用命令 ps aux | grep memcached 來查看是否正常運行

使用命令 ps aux | grep memcached 來查看是否正常運行

  1. 使用命令 telnet localhost 11211 來連接memcache實例

使用命令  來連接memcache實例

MemCache 常用命令

add

添加數據,將 value(數據值) 存儲在指定的 key(鍵) 中

命令格式
add key flag expiretime bytes
value
  • key : 給這個值設置一個名字
  • flag : 標誌,是一個整數
  • expiretime : 有效期,以秒爲單位,0表示沒有延遲
  • bytes : 這是一個需要存儲在memcached的數據的長度
  • value : 是一個需要存儲的數據。數據需要將通過在新的一行後輸入
範例
# 添加數據
add name 0 1000 8
kangvcar
STORED
# 如果bytes設置的長度和輸入的value長度不符則出現一下錯誤
add name 0 1000 8
kangvcarrr
CLIENT_ERROR bad data chunk

set

爲一個新的或現有的鍵(key)設置一個值

命令格式
set key flag expiretime bytes
value

參數含義與 add 命令相同

範例
爲已存在的key(name)設置一個新的值tom
set name 0 1000 3
tom
STORED

replace

替換已存在的 key(鍵) 的 value(數據值)

命令格式
replace key flag expiretime bytes
value

參數含義與 add 命令相同

範例
replace name 0 1000 8
memcache
STORED

append

向已存在 key(鍵) 的 value(數據值) 後面追加數據

命令格式
append key flag expiretime bytes
value

參數含義與 add 命令相同

範例
# 添加數據123到現有鍵name的後面
append name 0 1000 3
123
STORED
# 查看鍵name的值
get name
VALUE name 0 11
memcache123
END

prepend

向已存在 key(鍵) 的 value(數據值) 前面追加數據

命令格式
prepend key flag expiretime bytes
value

參數含義與 add 命令相同

範例
prepend name 0 1000 3
456
STORED
get name
VALUE name 0 14
456memcache123
END

gets / cas

gets 獲取帶有 CAS 令牌的 value(數據值) cas 執行一個"檢查並設置"的操作

命令格式
gets key
cas key flags exptime bytes unique_cas_token [noreply]
value
  • unique_cas_token : 通過 gets 命令獲取的一個唯一的64位值
範例
# 缺少一個參數 unique_cas_token 
cas name 0 1000 3
ERROR
# unique_cas_token 不正確
cas name 0 1000 3 2
sam
NOT_FOUND
# 通過 gets 命令獲取唯一令牌 ==> 12
gets name
VALUE name 0 8 12
kangvcar
END
# 使用 cas 命令更新數據
cas name 0 1000 3 12
sam
STORED
# 使用 get 命令查看數據是否更新
get name
VALUE name 0 3
sam
END

get

獲取存儲在 key(鍵) 中的 value(數據值)

命令格式

get key

範例
# 獲取存儲在鍵name的值
get name
VALUE name 0 14
456memcache123
END

delete

刪除已存在的 key(鍵)

命令格式

delete key

範例
delete age
DELETED

incr / decr

incr 與 decr 命令用於對已存在的 key(鍵) 的數字值進行自增或自減操作

命令格式

incr key increment_value decr key increment_value

範例
# 添加數據
add age 0 1000 2
15
STORED
# 對已存在的鍵(age)數字值進行自增
incr age 5
20
# 獲取鍵age的值
get age
VALUE age 0 2
20
END
# 添加數據
add age 0 1000 2
15
STORED
# 對已存在的鍵(age)數字值進行自減
incr age 5
10
# 獲取鍵age的值
get age
VALUE age 0 2
10
END

flush_all

清理緩存中的所有數據

命令格式

flush_all [time]

  • time : (可選) 在指定時間後執行清理緩存操作
範例
flush_all
OK

stats / stats slabs / stats sizes / stats items

stats 顯示統計信息例如 PID(進程號)、版本號、連接數等 stats slabs 顯示各個slab的信息,包括chunk的大小、數目、使用情況等 stats sizes 顯示所有item的大小和個數 stats items 顯示各個 slab 中 item 的數目和存儲時長

命令格式

stats stats slabs stats sizes stats items

範例
stats
STAT pid 19700
STAT uptime 3054540758
STAT time 269361355
STAT version 1.4.4-14-g9c660c0
STAT pointer_size 64
...
stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
...
stats sizes
STAT 96 2
END
stats items
STAT items:1:number 2
STAT items:1:age 3054540037
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
END
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章