一.存儲命令
存儲命令的格式:
<command name> <key> <flags> <exptime> <bytes> <data block>
參數說明:
<command name> | 操作命令:set/add/replace |
<key> | 緩存的鍵值 |
<flags> | 客戶機使用它存儲關於鍵值對的額外信息 |
<exptime> | 緩存過期時間 單位為秒 0 表示永遠存儲 |
<bytes> | 緩存值的字節數 |
<data block> | 數據塊 |
1.添加值命令
(1) 無論如何都添加或更新的set 命令 (值不存在則添加 存在則更新) set 設置后可以用get命令獲取值 也可以使用delete命令刪除該值
[root@zhz jiehun]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set test_key 0 0 3
100
STORED
get test_key
VALUE test_key 0 3
100
END
delete test_key
DELETED
get test_key
END
(2)只有數據不存在時添加值的add命令
[root@zhz jiehun]# telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. add zhang 0 0 1 //第一次添加 成功 q STORED add zhang 0 0 1 //第二次添加 失敗 q NOT_STORED
(3)只有數據存在時替換的replace命令
[root@zhz jiehun]# telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. replace zhang_t 0 0 2 //replace 不存在的元素 失敗 22 NOT_STORED add zhang_t 0 0 2 12 STORED get zhang_t VALUE zhang_t 0 2 12 END replace zhang_t 0 0 3 //replace 存在的值成功 200 STORED get zhang_t //值被替換 VALUE zhang_t 0 3 200 END
2.刪除命令 delete
get zhang_t VALUE zhang_t 0 3 200 END delete zhang_t DELETED get zhang_t END
二 讀取命令
1.get 命令 獲取一個鍵或多個鍵的值 多個鍵以空格分開
get zhang_t zhang VALUE zhang 0 1 q END set zhang_t 0 0 3 100 STORED get zhang_t zhang VALUE zhang_t 0 3 100 VALUE zhang 0 1 q END
2 .gets 命令比get返回的值多一個數字 用來判斷數據是否發生過改變
gets zhang_t zhang VALUE zhang_t 0 4 185 1000 VALUE zhang 0 1 181 q END set zhang_t 0 29 4 1000 STORED gets zhang_t zhang VALUE zhang_t 0 4 186 1000 VALUE zhang 0 1 181 q END
3. cas 的意思是 check and set 的意思,只有當最后一個參數鶴gets獲取的那個用來判斷數據發生改變的那個值相同時才會存儲成功,否則返回 exists
gets zhang
VALUE zhang 0 3 188
dff
END
cas zhang 0 0 3 189
kjf
EXISTS
cas zhang 0 0 3 188
kjf
STORED
gets zhang
VALUE zhang 0 3 189
kjf
END
4. 自曾(incr) 自減(decr)命令
set age 0 0 2 10 STORED get age VALUE age 0 2 10 END incr age 2 12 incr age 2 14 get age VALUE age 0 2 14 END decr age 1 13 get age VALUE age 0 2 13 END
三 狀態命令
1.stats 顯示memcachd狀態
stats STAT pid 1532 //進程id STAT uptime 348167 //服務運行秒數 STAT time 1372215144 //當前unix時間戳 STAT version 1.4.14 //服務器版本 STAT libevent 2.0.10-stable STAT pointer_size 32 //操作系統字大小 STAT rusage_user 3.997392 //進程累計用戶時間 STAT rusage_system 2.258656 //進程累計系統時間 STAT curr_connections 5 //當前打開連接數 STAT total_connections 265 //鏈接總數 STAT connection_structures 7 //服務器分配的鏈接結構數 STAT reserved_fds 20 // STAT cmd_get 1911 //執行get命令次數 STAT cmd_set 195 //執行set命令次數 STAT cmd_flush 3 //執行flush命令次數 STAT cmd_touch 0 STAT get_hits 1708 //get命中次數 STAT get_misses 203 //get未命中次數 STAT delete_misses 11 //delete 未命中次數 STAT delete_hits 14 //delete命中次數 STAT incr_misses 0 //incr 自增命令 未命中次數 STAT incr_hits 0 //incr 命中次數 STAT decr_misses 0 //decr 自減 未命中次數 STAT decr_hits 0 //decr 命中次數 STAT cas_misses 0 //cas 未命中次數 STAT cas_hits 2 //case 命中次數 STAT cas_badval 1 //使用擦拭次數 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 164108 //讀取字節數 STAT bytes_written 1520916 //寫入字節書 STAT limit_maxbytes 67108864 //分配的內存數 STAT accepting_conns 1 //目前接受的連接數 STAT listen_disabled_num 0 STAT threads 4 //線程數 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 262144 STAT hash_is_expanding 0 STAT expired_unfetched 4 STAT evicted_unfetched 0 STAT bytes 23995 //存儲字節數 STAT curr_items 31 //item個數 STAT total_items 189 //item總數 STAT evictions 0 //為獲取空間刪除的item個數 STAT reclaimed 17 END
2.flush_all 清空所有項目
flush_all
OK
3.后續追加append和prepend前面插入命令
get age VALUE age 0 2 13 END append age 0 3 ERROR append age 0 0 6 111111 STORED get age VALUE age 0 8 13111111 END prepend age 0 0 6 111111 STORED get age VALUE age 0 14 11111113111111 END
該命令有一個可選的數字參數。它總是執行成功,服務器會發送 “OK\r\n” 回應。它的效果是使已經存在的項目立即失效(缺省),或在指定的時間后。此后執行取回命令,將不會有任何內容返回(除非重新存儲同樣的鍵名)。 flush_all 實際上沒有立即釋放項目所占用的內存,而是在隨后陸續有新的項目被儲存時執行(這是由memcached的懶惰檢測和刪除機制決定的)。
flush_all 效果是它導致所有更新時間早於 flush_all 所設定時間的項目,在被執行取回命令時命令被忽略。
memecached還有其他命令 ,這里只是平時我們工作中經常用到的一些,以此文章記錄備用。