memcached(windows)安裝與配置

推薦博客:http://snowolf.iteye.com/blog/1447348 ,http://snowolf.iteye.com/blog/1471805 , http://snowolf.iteye.com/blog/1576818 
 特別說明:一致性哈希配置(附件有個類配置參考) 
a:spring: 
<property name="sessionLocator">  
            <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator" />  

        </property>  


b:自己寫程序: 
//使用一致性哈希(Consistent Hash Strategy)  true或false:允許配置是否兼容 nginx-upstream-consistent 
builder.setSessionLocator(new KetamaMemcachedSessionLocator(true)); 


1. 下載windows版本的Memcached:http://code.jellycan.com/memcached/ 

2.解壓之後放在硬盤的目錄下,如:D:\memcached . 然後在運行中輸入cmd進入命令行,進入到Memcached.exe 所在的目錄,例如:D:\memcached,然後輸入: 
Cmd代碼  收藏代碼 
到memcached根目錄 
1、安裝 
memcached.exe –d install  
2、啓動 
memcached.exe -d start 
此時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 


3、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 顯示幫助 


4、最主要的一點,在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 


   2、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之內? 
啊…這是一個大家經常問的問題! 

簡單的回答:因爲內存分配器的算法就是這樣的 


轉載地址:http://zhaoshijie.iteye.com/blog/1135608

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章