關鍵字:memcached(windows)安裝與配置 算法
1. 下載windows版本的Memcached:http://code.jellycan.com/memcached/ windows
2.解壓以後放在硬盤的目錄下,如:D:\memcached . 而後在運行中輸入cmd進入命令行,進入到Memcached.exe 所在的目錄,例如:D:\memcached,而後輸入: 緩存
Cmd代碼 收藏代碼 服務器
到memcached根目錄 memcached
一、安裝 操作系統
memcached.exe –d install 命令行
二、啓動 線程
memcached.exe -d start unix
此時memcached已經註冊爲開機啓動服務 指針
完成安裝。
經實驗使用命令修改端口無效,相應的解決方案是修改註冊表:
經過修改註冊表來達到這個修改端口的目的。
在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 下面找到一個 ImagePath 的字符串項,正好是服務的執行路徑的字符串,雙擊該串,在後面加入 -l 192.168.1.135 -m 45 -p 12345 (訪問ip爲:192.168.1.135 使用45M內存,12345爲端口),再啓動服務。
如今來試試是否能夠鏈接:
使用方法爲「telnet ip 端口號」,登陸後使用「stats」命令
cmd下
telnet 192.168.1.135 12345(注意:這裏只能用IP 不能用 localhost 或127.0.0.1)
而後使用:stats命令能夠看到memcached的使用狀況以下:
STAT uptime 760
STAT time 1311913149
STAT version 1.2.1
STAT pointer_size 32
STAT curr_items 0
STAT total_items 0
STAT bytes 0
STAT curr_connections 4
STAT total_connections 6
STAT connection_structures 5
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT bytes_read 63
STAT bytes_written 793
STAT limit_maxbytes 10485760
END
三、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 顯示幫助
四、最主要的一點,在windows下安裝memcache經過命令行修改參數好像不起什麼做用,須要進入註冊表修改啓動項參數纔有用,具體操做以下:進入註冊表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server , 在其中有一個ImagePath 項,值爲"d:\memcached\memcached.exe" -d runservice ,在後面加上-l 127.0.0.1 -m 3000 -c 2048 最後ImagePath 項值應該像這樣:
註冊表值代碼 收藏代碼
1. d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 3000 -c 2048
d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 3000 -c 2048
五、memcached –d start 啓動memcached服務,這樣就將memcached的最大內存修改成了3000MB。
對Memcached緩存服務的狀態查詢,能夠先telnet鏈接上服務:telnet 127.0.0.1 11211 ,而後使用 stats命令查看緩存服務的狀態,會返回以下的數據:
time: 1255537291 服務器當前的unix時間戳
total_items: 54 從服務器啓動之後存儲的items總數量
connection_structures: 19 服務器分配的鏈接構造數
version: 1.2.6 memcache版本
limit_maxbytes: 67108864 分配給memcache的內存大小(字節)
cmd_get: 1645 get命令(獲取)總請求次數
evictions: 0 爲獲取空閒內存而刪除的items數(分配給memcache的空間用滿後需
要刪除舊的items來獲得空間分配給新的items)
total_connections: 19 從服務器啓動之後曾經打開過的鏈接數
bytes: 248723 當前服務器存儲items佔用的字節數
threads: 1 當前線程數
get_misses: 82 總未命中次數
pointer_size: 32 當前操做系統的指針大小(32位系統通常是32bit)
bytes_read: 490982 總讀取字節數(請求字節數)
uptime: 161 服務器已經運行的秒數
curr_connections: 18 當前打開着的鏈接數
pid: 2816 memcache服務器的進程ID
bytes_written: 16517259 總髮送字節數(結果字節數)
get_hits: 1563 總命中次數
cmd_set: 54 set命令(保存)總請求次數
curr_items: 28 服務器當前存儲的items數量
關於memcache 的一下疑問:
memcached能接受的key的最大長度是多少?
key 的最大長度是250個字符。須要注意的是,250是memcached服務器端內部的限制,若是您使用的客戶端支持」key的前綴」或相似特性,那麼 key(前綴+原始key)的最大長度是能夠超過250個字符的。咱們推薦使用使用較短的key,由於能夠節省內存和帶寬。
memcached對item的過時時間有什麼限制?
過時時間最大能夠達到30天。memcached把傳入的過時時間(時間段)解釋成時間點後,一旦到了這個時間點,memcached就把item置爲失效狀態。這是一個簡單但obscure的機制。
memcached最大能存儲多大的單個item?
1MB。若是你的數據大於1MB,能夠考慮在客戶端壓縮或拆分到多個key中。
爲何單個item的大小被限制在1M byte以內?
啊…這是一個你們常常問的問題!
簡單的回答:由於內存分配器的算法就是這樣的