memcache作為一款優秀的進程外緩存,常常被運用於高並發系統架構中。這裡主要談談怎麼通過telnet工具,查看memcache運行狀況並對其key進行管理維護。假設memcache安裝目錄:/usr/local/memcached
1、啟動memcache
復制代碼 代碼如下:
[root@localhost ~]# /usr/local/memcached/bin/memcached -d -m 512 -u root -l 192.168.119.70 -p 12000 -c 512 -P /usr/local/memcached/memcached.pid
啟動參數詳解
-d:以守護進程方式啟動。如果該參數沒有指定,當按ctrl+c命令結束,memcache自動關閉
-m:分配給memcache使用的最大內存數 單位是m,默認是64m
-u: 指定運行memcache的用戶
-l: 指定監聽的ip地址
-p: 指定監聽的tcp端口號,可以通過-u指定udp端口.默認是11211
-c: 最大並發連接數
-P: 報錯進程id的文件
memcache 啟動之後,我們就可以通過telnet連接memcache,對其進行簡單操作管理。
2、telnet連接memcache
復制代碼 代碼如下:
[root@localhost ~]# telnet 192.168.119.70 12000
Trying 192.168.119.70...
Connected to 192.168.119.70 (192.168.119.70).
Escape character is '^]'.
連接成功之後,即可對memcache進行操作管理了,常用的命令有:
Ⅰ、添加修改
命令格式:<command> <key> <flags> <exptime> <bytes>\r\n<data block>\r\n
<command>:add, set或 replace
<key> :緩存的名字
<flag>:16位無符號整數,和key要存儲的數據一起存儲,並在程序get緩存時,返回。
<exptime>:過去時間,0 表示永遠不過期,如果非零,表示unix時間或距此秒數
<bytes>:存儲數據的字節數
\r\n: 表示換行回車
命令結果:
STORED :表示成功
NOT_STORED : 表示失敗
a)、添加緩存
復制代碼 代碼如下:
add id 1 0 4
1234
STORED
如果key已經存在,則會添加失敗。
b)、修改緩存
復制代碼 代碼如下:
replace id 1 0 4
3456
STORED
key存在時,成功;不存在時,失敗。
c)、設置緩存
復制代碼 代碼如下:
set id 1 0 4
2345
STORED
key不存在時,添加【add】;已存在時,替換【replace】。
Ⅱ、讀取
命令格式:get <key>+\r\n
<key>+:表示一個或多個key,多個key時,用空格隔開
a)、讀取單個key的緩存
復制代碼 代碼如下:
get id
VALUE id 1 4
1234
END
b)、讀取多個key的緩存
復制代碼 代碼如下:
get id name
VALUE id 1 4
3456
VALUE name 1 3
jim
END
Ⅲ、刪除
命令格式:delete <key> \r\n
<key>:要刪除的key
刪除id
復制代碼 代碼如下:
delete id
DELETED
Ⅳ、清空所有緩存
命令格式:flush_all
復制代碼 代碼如下:
flush_all
OK
Ⅴ、查看緩存服務器狀態
命令:stats
復制代碼 代碼如下:
stats
STAT pid 2711 //進程id
STAT uptime 2453 //總的運行時間,單位描述
STAT time 1344856333 //當前時間
STAT version 1.4.0 //版本
STAT pointer_size 32 //服務器指針位數,一般32位操作系統是32
STAT rusage_user 0.002999 //進程的累計用戶時間
STAT rusage_system 1.277805 //進程的累計系統事件
STAT curr_connections 1 //當前連接數
STAT total_connections 11 //服務器啟動後,總連接數
STAT connection_structures 11 //連接結構的數量
STAT cmd_get 17 //總獲取次數
STAT cmd_set 1 //總寫入次數
STAT cmd_flush 1 //總的的清空次數
STAT get_hits 1 //總的命中次數
STAT get_misses 7 //獲取沒有命中次數
STAT delete_misses //刪除沒有命中次數
STAT delete_hits 4 //刪除命中次數
STAT incr_misses //遞增操作沒有命中次數
STAT incr_hits //遞增操作命中次數
STAT decr_misses //遞減操作沒有命中的次數
STAT decr_hits //遞減操作命中的次數
STAT cas_misses //cas設置沒有命中次數
STAT cas_hits //cas命中次數
STAT cas_badval //cas操作找到key,但版本過期,沒有設置成功
STAT bytes_read 455 //總共獲取數據量
STAT bytes_written 1175 //總共寫入數據量
STAT limit_maxbytes 1048576 //最大允許使用內存,單位字節
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 5 //當前線程數
STAT conn_yields 0
STAT bytes 56 //已用緩存空間
STAT curr_items 1 //當前緩存的keyvalue數
STAT total_items 7 //總共緩存的keyvalue數,包括過期刪除的
STAT evictions //通過刪除keyvalue,釋放內存次數
END
Ⅵ、打印版本
命令:version
復制代碼 代碼如下:
version
VERSION 1.4.0
Ⅶ、打印內存信息
命令:stats slabs
復制代碼 代碼如下:
stats slabs
STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
STAT 1:total_pages 1
STAT 1:total_chunks 13107
STAT 1:used_chunks 1
STAT 1:free_chunks 1
STAT 1:free_chunks_end 13105
STAT 1:get_hits 10
STAT 1:cmd_set 10
STAT 1:delete_hits 4
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 0
STAT 1:cas_badval 0
STAT active_slabs 1
STAT total_malloced 1048560
END
3、退出telnet
復制代碼 代碼如下:
quit
完!