命令列查看memcache狀態
memcache的運行狀態可以方便的用stats命令顯示。
首先用telnet 127.0.0.1 11211這樣的命令串連上memcache,然後直接輸入stats就可以得到當前memcache的狀態。
這些狀態的說明如下:
pid
memcache伺服器的進程ID
uptime
伺服器已經啟動並執行秒數
time
伺服器當前的unix時間戳記
version
memcache版本
pointer_size
當前作業系統的指標大小(32位系統一般是32bit)
rusage_user
進程的累計使用者時間
rusage_system
進程的累計系統時間
curr_items
伺服器當前儲存的items數量
total_items
從伺服器啟動以後儲存的items總數量
bytes
當前伺服器儲存items佔用的位元組數
curr_connections
當前開啟著的串連數
total_connections
從伺服器啟動以後曾經開啟過的串連數
connection_structures
伺服器分配的串連構造數
cmd_get
get命令(擷取)總請求次數
cmd_set
set命令(儲存)總請求次數
get_hits
總叫用次數
get_misses
總未叫用次數
evictions
為擷取空閑記憶體而刪除的items數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items)
bytes_read
總讀取位元組數(請求位元組數)
bytes_written
總發送位元組數(結果位元組數)
limit_maxbytes
分配給memcache的記憶體大小(位元組)
threads
當前線程數
Memcache伺服器端都是直接通過用戶端串連後直接操作,沒有任何的驗證過程,這樣如果伺服器是直接暴露在互連網上的話是比較危險,輕則資料泄露被其他無關人員查看,重則伺服器被入侵,況且裡面可能存在一些我們未知的bug或者是緩衝區溢位的情況,這些都是我們未知的,所以危險性是可以預見的。為了安全起見,做兩點建議,能夠稍微的防止駭客的入侵或者資料的泄露。
現在就關於修改memcache伺服器配置的問題說明如下:
1>用內網ip的方式提供web應用伺服器調用,不允許直接通過外網調用,如將memcache伺服器放在192.168.1.55的伺服器上
2>修改連接埠,如改為11200
3>分配記憶體,如分配1024M(1G記憶體)
方法如下:
cmd進入c盤->memcached -m 1024 -p 11200 -l 192.168.1.55(斷行符號)
注意,此時命令列不會回到C:/memcached>狀態,並且實際上memcache伺服器悄悄變為stop狀態了。此視窗不可以關閉。新開一個cmd視窗
cmd進入c盤->memcached -d start(斷行符號)可以關閉此cmd視窗。
此時可以使用新配置的memcache伺服器了。
上述方法雖然解決了修改預設配置的問題,但是始終會有一個cmd視窗不可以關閉,否則就回到11211連接埠的預設配置。
更好的解決方案是通過修改服務的註冊表配置:
1>開始>運行:regedit(斷行符號)
2>在註冊表中找到:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached Server
3>預設的ImagePath鍵的值是:"c:/memcached/memcached.exe" -d runservice,改為:"c:/memcached/memcached.exe" -d runservice -m 512 -p 11200 -l 192.168.1.55(確定,關閉註冊表)
4>我的電腦(右鍵)>管理>服務 找到memcache的服務,重新啟動一次即可生效。
memcached命令:
-p 監聽的連接埠
-l 串連的IP地址, 預設是本機
-d start 啟動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在啟動並執行memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root啟動並執行時候有效)
-m 最大記憶體使用量,單位MB。預設64MB
-M 記憶體耗盡時返回錯誤,而不是刪除項
-c 最大同時串連數,預設是1024
-f 塊大小增長因子,預設是1.25
-n 最小分配空間,key+value+flags預設是48
-h 顯示協助