1. 程式人生 > >[Memcached] telnet命令

[Memcached] telnet命令

linux windows 客戶端

一:連接命令

在windows下的cmd或Linux執行

telnet 127.0.0.1 11211    (如果此處報錯”telnet不是內部或外部命令”,一定是沒有安裝telnet客戶端請見下文如何開啟telnet客戶端)11

就可以連接上memcached。

[[email protected] ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.12341234
 11

執行quit退出連接。

quit
Connection closed by foreign host.
[[email protected]
/* */ ~]# 12341234

二:存儲命令

舉例:
1:set添加或者編輯

set a 0 0 4
8888
STORED 12341234

上述命令的意思是:設置a=8888

當數據不存在的時候,可以執行add命令,如果數據已經存在,返回NOT_STORED

add a 0 0 4
8888
NOT_STORED 12341234

2:get獲取

get a
VALUE a 0 4
8888
END 12341234

3:delete刪除

delete a
DELETED1212
 11
4:replace替換
replace a 0 0 4
9999
STORED 123123

如果key不存在,則回顯
NOT_STORED

三:其他命令

flush_all清除所有緩存

-------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------

關於報錯”telnet不是內部或外部命令”的解決辦法:

(Windows 7或以上的系統)

一定是沒有安裝telnet客戶端請見下文如何開啟telnet客戶端

1.打開“控制面板”>“添加刪除程序”>“打開或關閉Windows功能”>勾選“Telnet客戶端”確定即可;

2.無需重啟,再次運行 “telnet” 或 “telnet 127.0.0.1:11211” 即可

備註:關閉Telnet客戶端,要重啟以後才會生效;

-------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------

一.存儲命令

存儲命令的格式:

 <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命令刪除該值

技術分享

技術分享

[[email protected]]# 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命令

技術分享

技術分享

[[email protected]]# telnet 127.0.0.1 11211Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.add zhang 0 0 1 //第一次添加  成功q 
STOREDadd zhang 0 0 1 //第二次添加 失敗q
NOT_STORED

技術分享

技術分享

(3)只有數據存在時替換的replace命令

技術分享

技術分享

[[email protected]]# telnet 127.0.0.1 11211Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.
replace zhang_t 0 0 2    //replace 不存在的元素 失敗22NOT_STORED
add zhang_t 0 0 212STORED
get zhang_t
VALUE zhang_t 0 212END
replace zhang_t 0 0 3 //replace 存在的值成功200STORED
get zhang_t //值被替換
VALUE zhang_t 0 3200END

技術分享

技術分享

2.刪除命令 delete

技術分享

技術分享

get zhang_t
VALUE zhang_t 0 3200END
delete zhang_t
DELETED
get zhang_t
END

技術分享

技術分享

二 讀取命令

1.get 命令 獲取一個鍵或多個鍵的值 多個鍵以空格分開

技術分享

技術分享

get zhang_t zhangVALUE zhang 0 1q
ENDset zhang_t 0 0 3100STOREDget zhang_t zhangVALUE zhang_t 0 3100VALUE zhang 0 1q
END

技術分享

技術分享

2 .gets 命令比get返回的值多一個數字 用來判斷數據是否發生過改變

技術分享

技術分享

gets zhang_t zhang
VALUE zhang_t 0 4 1851000VALUE zhang 0 1 181q
END
set zhang_t 0 29 41000STORED
gets zhang_t zhang
VALUE zhang_t 0 4 1861000VALUE zhang 0 1 181q
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 210STOREDget age
VALUE age 0 210ENDincr age 212incr age 214get age
VALUE age 0 214ENDdecr age 113get age
VALUE age 0 213END

技術分享

技術分享

三 狀態命令

1.stats 顯示memcachd狀態

技術分享

技術分享

stats
STAT pid 1532 //進程idSTAT 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 0STAT 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 0STAT touch_misses 0STAT auth_cmds 0STAT auth_errors 0STAT bytes_read 164108   //讀取字節數STAT bytes_written 1520916 //寫入字節書STAT limit_maxbytes 67108864 //分配的內存數STAT accepting_conns 1 //目前接受的連接數STAT listen_disabled_num 0STAT threads 4 //線程數STAT conn_yields 0STAT hash_power_level 16STAT hash_bytes 262144STAT hash_is_expanding 0STAT expired_unfetched 4STAT evicted_unfetched 0STAT bytes 23995  //存儲字節數STAT curr_items 31 //item個數STAT total_items 189 //item總數STAT evictions 0 //為獲取空間刪除的item個數STAT reclaimed 17END

技術分享

技術分享

2.flush_all 清空所有項目

flush_all
OK

3.後續追加append和prepend前面插入命令

技術分享

技術分享

get age
VALUE age 0 213END
append age 0 3ERROR
append age 0 0 6111111STORED
get age
VALUE age 0 813111111END
prepend age 0 0 6111111STORED
get age
VALUE age 0 1411111113111111END

技術分享

技術分享

該命令有一個可選的數字參數。它總是執行成功,服務器會發送 “OK\r\n” 回應。它的效果是使已經存在的項目立即失效(缺省),或在指定的時間後。此後執行取回命令,將不會有任何內容返回(除非重新存儲同樣的鍵名)。 flush_all 實際上沒有立即釋放項目所占用的內存,而是在隨後陸續有新的項目被儲存時執行(這是由memcached的懶惰檢測和刪除機制決定的)。

flush_all 效果是它導致所有更新時間早於 flush_all 所設定時間的項目,在被執行取回命令時命令被忽略。

memecached還有其他命令 ,這裏只是平時我們工作中經常用到的一些,以此文章記錄備用。


[Memcached] telnet命令