memcache做爲一款優秀的進程外緩存,經常被運用於高併發系統架構中。這裏主要談談怎麼經過telnet工具,查看memcache運行情況並對其key進行管理維護。假設memcache安裝目錄:/usr/local/memcached緩存
一、啓動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,對其進行簡單操做管理。tcp
二、telnet鏈接memcachememcached
[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】。
注意:字節數必須和你要存儲的數據保持一致,否則回報 CLIENT_ERROR bad data chunk 錯誤
Ⅱ、讀取
命令格式: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 \r\n
:要刪除的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
三、退出telnet