MemCache雖然被稱爲」分佈式緩存」,可是MemCache自己徹底不具有分佈式的功能數據庫
Memcache 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它經過在內存中緩存數據和對象來減小讀取數據庫的次數,從而提升了網站訪問的速度。 MemCaChe是一個存儲鍵值對的HashMap,在內存中對任意的數據(好比字符串、對象等)所使用的key-value存儲,數據能夠來自數據庫調用、API調用,或者頁面渲染的結果。MemCache設計理念就是小而強大,它簡單的設計促進了快速部署、易於開發並解決面對大規模的數據緩存的許多難題,而所開放的API使得MemCache能用於Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序語言。緩存
memcached -d install
來把memcache安裝爲系統服務, 運行命令 memcached -d start
來啓動服務telnet localhost 11211
來鏈接 memcache 實例sudo apt-get install -y memcached
來安裝memcacheps aux | grep memcached
來查看是否正常運行telnet localhost 11211
來鏈接memcache實例添加數據,將 value(數據值) 存儲在指定的 key(鍵) 中app
add key flag expiretime bytes value
# 添加數據 add name 0 1000 8 kangvcar STORED # 若是bytes設置的長度和輸入的value長度不符則出現一下錯誤 add name 0 1000 8 kangvcarrr CLIENT_ERROR bad data chunk
爲一個新的或現有的鍵(key)設置一個值分佈式
set key flag expiretime bytes value
參數含義與 add 命令相同memcached
爲已存在的key(name)設置一個新的值tom set name 0 1000 3 tom STORED
替換已存在的 key(鍵) 的 value(數據值)性能
replace key flag expiretime bytes value
參數含義與 add 命令相同網站
replace name 0 1000 8 memcache STORED
向已存在 key(鍵) 的 value(數據值) 後面追加數據設計
append key flag expiretime bytes value
參數含義與 add 命令相同code
# 添加數據123到現有鍵name的後面 append name 0 1000 3 123 STORED # 查看鍵name的值 get name VALUE name 0 11 memcache123 END
向已存在 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 令牌的 value(數據值) cas
執行一個"檢查並設置"的操做
gets key
cas key flags exptime bytes unique_cas_token [noreply] value
# 缺乏一個參數 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
獲取存儲在 key(鍵) 中的 value(數據值)
get key
# 獲取存儲在鍵name的值 get name VALUE name 0 14 456memcache123 END
刪除已存在的 key(鍵)
delete key
delete age DELETED
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 [time]
flush_all OK
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