ubuntu 下telnet 操纵memcache 实现
memcache作為一款優(yōu)秀的進(jìn)程外緩存,常常被運(yùn)用于高并發(fā)系統(tǒng)架構(gòu)中。這里主要談?wù)勗趺赐ㄟ^telnet工具,查看memcache運(yùn)行狀況并對(duì)其key進(jìn)行管理維護(hù)。假設(shè)memcache安裝目錄:/usr/local/memcached
?????????
1、啟動(dòng)memcache
?
啟動(dòng)參數(shù)詳解
?-d:以守護(hù)進(jìn)程方式啟動(dòng)。如果該參數(shù)沒有指定,當(dāng)按ctrl+c命令結(jié)束,memcache自動(dòng)關(guān)閉
?-m:分配給memcache使用的最大內(nèi)存數(shù) 單位是m,默認(rèn)是64m
?-u: 指定運(yùn)行memcache的用戶
?-l: 指定監(jiān)聽的ip地址
?-p: 指定監(jiān)聽的tcp端口號(hào),可以通過-u指定udp端口.默認(rèn)是11211
?-c: 最大并發(fā)連接數(shù)
?-P: 報(bào)錯(cuò)進(jìn)程id的文件
?memcache 啟動(dòng)之后,我們就可以通過telnet連接memcache,對(duì)其進(jìn)行簡(jiǎn)單操作管理。
2、telnet連接memcache
[plain] view plaincopy [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 '^]'.?連接成功之后,即可對(duì)memcache進(jìn)行操作管理了,常用的命令有:
Ⅰ、添加修改
????????命令格式:<command> <key> <flags> <exptime> <bytes>\r\n<data block>\r\n
?????? <command>:add, set或 replace
???????<key> :緩存的名字
?????? <flag>:16位無符號(hào)整數(shù),和key要存儲(chǔ)的數(shù)據(jù)一起存儲(chǔ),并在程序get緩存時(shí),返回。
????? <exptime>:過去時(shí)間,0 表示永遠(yuǎn)不過期,如果非零,表示unix時(shí)間或距此秒數(shù)
?????? <bytes>:存儲(chǔ)數(shù)據(jù)的字節(jié)數(shù)
??????? \r\n: 表示換行回車
??????? 命令結(jié)果:
??????????????? STORED :表示成功
??????????????? NOT_STORED :?表示失敗?
a)、添加緩存
[plain] view plaincopy add id 1 0 4 1234 STORED???????? 如果key已經(jīng)存在,則會(huì)添加失敗。
b)、修改緩存
[plain] view plaincopy replace id 1 0 4 3456 STORED???? key存在時(shí),成功;不存在時(shí),失敗。
c)、設(shè)置緩存
[plain] view plaincopy set id 1 0 4 2345 STORED??? key不存在時(shí),添加【add】;已存在時(shí),替換【replace】。
?
Ⅱ、讀取
?????? 命令格式:get <key>+\r\n
?????? <key>+:表示一個(gè)或多個(gè)key,多個(gè)key時(shí),用空格隔開
a)、讀取單個(gè)key的緩存
[plain] view plaincopy get id VALUE id 1 4 1234 END ??b)、讀取多個(gè)key的緩存
[plain] view plaincopy get id name VALUE id 1 4 3456 VALUE name 1 3 jim ENDⅢ、刪除
命令格式:delete <key> \r\n
<key>:要?jiǎng)h除的key
刪除id
[plain] view plaincopy delete id DELETEDⅣ、清空所有緩存
命令格式:flush_all
[plain] view plaincopy flush_all OKⅤ、查看緩存服務(wù)器狀態(tài)
命令:stats
[plain] view plaincopy stats STAT pid 2711 //進(jìn)程id STAT uptime 2453 //總的運(yùn)行時(shí)間,單位描述 STAT time 1344856333 //當(dāng)前時(shí)間 STAT version 1.4.0 //版本 STAT pointer_size 32 //服務(wù)器指針位數(shù),一般32位操作系統(tǒng)是32 STAT rusage_user 0.002999 //進(jìn)程的累計(jì)用戶時(shí)間 STAT rusage_system 1.277805 //進(jìn)程的累計(jì)系統(tǒng)事件 STAT curr_connections 1 //當(dāng)前連接數(shù) STAT total_connections 11 //服務(wù)器啟動(dòng)后,總連接數(shù) STAT connection_structures 11 //連接結(jié)構(gòu)的數(shù)量 STAT cmd_get 17 //總獲取次數(shù) STAT cmd_set 1 //總寫入次數(shù) STAT cmd_flush 1 //總的的清空次數(shù) STAT get_hits 1 //總的命中次數(shù) STAT get_misses 7 //獲取沒有命中次數(shù) STAT delete_misses //刪除沒有命中次數(shù) STAT delete_hits 4 //刪除命中次數(shù) STAT incr_misses //遞增操作沒有命中次數(shù) STAT incr_hits //遞增操作命中次數(shù) STAT decr_misses //遞減操作沒有命中的次數(shù) STAT decr_hits //遞減操作命中的次數(shù) STAT cas_misses //cas設(shè)置沒有命中次數(shù) STAT cas_hits //cas命中次數(shù) STAT cas_badval //cas操作找到key,但版本過期,沒有設(shè)置成功 STAT bytes_read 455 //總共獲取數(shù)據(jù)量 STAT bytes_written 1175 //總共寫入數(shù)據(jù)量 STAT limit_maxbytes 1048576 //最大允許使用內(nèi)存,單位字節(jié) STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 5 //當(dāng)前線程數(shù) STAT conn_yields 0 STAT bytes 56 //已用緩存空間 STAT curr_items 1 //當(dāng)前緩存的keyvalue數(shù) STAT total_items 7 //總共緩存的keyvalue數(shù),包括過期刪除的 STAT evictions //通過刪除keyvalue,釋放內(nèi)存次數(shù) ENDⅥ、打印版本
命令:version
[plain] view plaincopy version VERSION 1.4.0Ⅶ、打印內(nèi)存信息
命令:stats slabs
[plain] view plaincopy 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 END3、退出telnet?
[plain] view plaincopy quit?
?
總結(jié)
以上是生活随笔為你收集整理的ubuntu 下telnet 操纵memcache 实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript获取当前时间
- 下一篇: cocos2dx基础篇(29)——屏幕适