安裝和使用memcached(windows)

cyzero發表於2013-02-27

一般情況下,我們用linux作為生產環境,但是開發還是在windows下面,所以我們需要 win版本。。但是memcache官方網站只提供了原始碼。

 

下面介紹使用第三方編譯的win版本的方法:

 

這是一個由Kenneth Dalgleish基於Kronuz1.2.1構建。官方memcached的團隊不對這個版本支援!

 

核心關鍵在這個:

http://splinedancer.com/memcached-win32/


Windows下Memcache安裝

 

1、下載memcache for windows。下載地址:http://splinedancer.com/memcached-win32/,解壓到d:\memcached。

2、在命令列狀態下輸入: d:\memcached\memcached.exe -d install 。至此memcached已經安裝成windows服務

3、在命令列下輸入: d:\memcached\memcached.exe -d start 以啟動memcached服務。當然也可以選擇在windows服務中啟動

注:以上命令需要在管理員許可權下執行,可以到C:\Windows\System32\cmd.exe 右鍵以管理員身份執行.


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

Memcache環境測試
執行下面的php檔案,如果有輸出This is a value!,就表示環境搭建成功。開始領略Memcache的魅力把!

 

Php程式碼  收藏程式碼
  1. <?php  
  2. $mem = new Memcache;  
  3. $mem->connect("127.0.0.1", 11211);  
  4. $mem->set('key''This is a value!', 0, 60);  
  5. $val = $mem->get('key');  
  6. echo $val;  
 

 

JAVA下的安裝:

 

2.從https://github.com/gwhalin/Memcached-Java-Client下載Memcached相關的jar包。

測試程式:

 

Java程式碼  收藏程式碼
  1. import com.danga.MemCached.MemCachedClient;  
  2. import com.danga.MemCached.SockIOPool;  
  3.    
  4. public class MemCachedTest {  
  5.    
  6.     private static MemCachedClient mcc = new MemCachedClient();  
  7.    
  8.     static {  
  9.         String[] servers = {"192.168.123.100:11211"};  
  10.         //建立一個連線池  
  11.         SockIOPool pool = SockIOPool.getInstance();  
  12.         //設定快取伺服器  
  13.         pool.setServers(servers);  
  14.         //設定初始化連線數,最小連線數,最大連線數以及最大處理時間  
  15.         pool.setInitConn(50);  
  16.         pool.setMinConn(50);  
  17.         pool.setMaxConn(500);  
  18.         pool.setMaxIdle(1000 * 60 * 60);  
  19.         //設定主執行緒睡眠時間,每30秒甦醒一次,維持連線池大小  
  20.         pool.setMaintSleep(30);  
  21.         //關閉套接字快取  
  22.         pool.setNagle(false);  
  23.         //連線建立後的超時時間  
  24.         pool.setSocketTO(3000);  
  25.         //連線建立時的超時時間  
  26.         pool.setSocketConnectTO(0);  
  27.         //初始化連線池  
  28.         pool.initialize();  
  29.     }  
  30.    
  31.     protected MemCachedTest(){  
  32.    
  33.     }  
  34.    
  35.     public static MemCachedClient getInstance(){  
  36.         return mcc;  
  37.     }  
  38.    
  39.     public static void main(String[] args) {  
  40.    
  41.         MemCachedClient mcc= MemCachedTest.getInstance();  
  42.             for ( int i = 0; i < 10; i++ ) {  
  43.             boolean success = mcc.set( "" + i, "Hello!" );  
  44.             String result = (String)mcc.get( "" + i );  
  45.             System.out.println( String.format( "set( %d ): %s", i, success ) );  
  46.             System.out.println( String.format( "get( %d ): %s", i, result ) );  
  47.         }  
  48.   
  49.         System.out.println( "\n\t -- sleeping --\n" );  
  50.         try { Thread.sleep( 100000 ); } catch ( Exception ex ) { }  
  51.   
  52.         for ( int i = 0; i < 10; i++ ) {  
  53.             boolean success = mcc.set( "" + i, "Hello!" );  
  54.             String result = (String)mcc.get( "" + i );  
  55.             System.out.println( String.format( "set( %d ): %s", i, success ) );  
  56.             System.out.println( String.format( "get( %d ): %s", i, result ) );  
  57.         }  
  58.     }  
  59. }  
 

 

 

 

參考資料
對Memcached有疑問的朋友可以參考下列文章:
Linux下的Memcache安裝:http://www.ccvita.com/257.html
Windows下的Memcache安裝:http://www.ccvita.com/258.html
Memcache基礎教程:http://www.ccvita.com/259.html
Discuz!的Memcache快取實現:http://www.ccvita.com/261.html
Memcache協議中文版:http://www.ccvita.com/306.html
Memcache分散式部署方案:http://www.ccvita.com/395.html

相關文章