windows 64下mamcached安裝以及java測試
windows 64 環境下安裝memcached
1、下載後解壓到D:\memcached (下載地址:http://download.csdn.net/detail/luohaiqing123456/9435521)
2、安裝到windows服務,開啟cmd命令列,進入memcached目錄,執行memcached -d install命令,安裝服務。
如果在沒有安裝過的情況下,出現"failed to install service or service already installed"錯誤,可能是cmd.exe需要用管理員身份執行。
3、啟動服務,執行memcached -d start
4、引數介紹
-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
5、修改引數,windows下需要通過修改登錄檔資訊進行設定,開啟登錄檔,找
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached
在其中有一個“ImagePath”項,值為:
"D:\memcached\memcached.exe" -d runservice
在後面加上“-m 1024 -c 2048 -p 11210”。等即可。重啟服務後生效
測試程式碼(工具包:http://download.csdn.net/detail/luohaiqing123456/9435526)
//java測試memcached類
package com.icardpay.business.manager;
import java.io.IOException;
import java.net.InetSocketAddress;
import net.spy.memcached.MemcachedClient;
public class MemCachedManager {
private static MemcachedClient client = null;
private MemCachedManager() {
try {
client = new MemcachedClient(new InetSocketAddress("127.0.0.1",11210));
} catch (IOException e) {
e.printStackTrace();
}
}
public static MemcachedClient getClient(){
if(client==null){
new MemCachedManager();
}
return client;
}
}
//實體類
package com.icardpay.business.manager;
import java.io.Serializable;
public class TBean implements Serializable {
private static final long serialVersionUID = 1945562032261336919L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//測試類
package com.icardpay.business.manager;
import net.spy.memcached.MemcachedClient;
import org.junit.Test;
import junit.framework.TestCase;
public class TestMemcached extends TestCase {
private static MemcachedClient cache;
@Test
public void testCache() {
cache=MemCachedManager.getClient();
//儲存字串
String key="strKey";
String value="儲存字串";
int expiration=0;
cache.set(key, expiration, value);
//取快取中key對應的值
System.out.println("name=" +cache.get("strKey"));
//儲存物件
TBean tb = new TBean();
tb.setName("儲存物件");
String keyBean="bean";
int expirationBean=0;
cache.set(keyBean, expirationBean,tb);
//取快取中物件的值
TBean tbGet=(TBean) cache.get("bean");
System.out.println("name=" +tbGet.getName());
}
}