Memcached for Java 缓存服务器测试

:D :D :D :D 下载Memcached for windows服务器,安装好以后会在服务中出现

默认端口是11211


要想在windows中使用memcached,必须先下载memcached for win32安装。

  下载地址:http://jehiah.cz/projects/memcached-win32/

  解压后只要在命令窗口中输入下面命令c:memcachedmemcached.exe -d install  就可以把memcached安装为windows服务了。

  启动该服务后,memcached服务默认占用的端口是11211,占用的最大内存默认是64M。

  在修改这2个配置选项就碰到了一些问题,网上搜索了很多资料,都说使用下面的命令启动服务就可以:

  c:memcachedmemcached.exe -p 12345 -m 1024 -d start  ,  -p 表示要修改的端口, -m表示占用的最大内存(单位为M)。

  但是无论怎么调用这个命令,发现端口一直还是11211。

  打开windows服务控制面板一看,发现memcached.exe 默认安装的服务器启动参数中根本没写-p -m的参数,只有1个 -d runservice参数。

  所以不管用什么命令启动服务都是没用的,见下图:

memcached for windows 修改端口和最大内存

  于是就想到直接修改windows服务的启动参数,操作如下,打开注册表,找到:

  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached Server

  其中的ImagePath项的值为:"c:memcachedmemcached.exe" -d runservice

  改成:"c:memcachedmemcached.exe" -p 12345 -m 128 -d runservice

  保存后重新启动memcached服务,然后在命令行中输入netstat -n -a  看看现在端口是不是改啦,^_^。

********************************************传说中的分割线*************************************************************

测试用例

缓存类

package com.util.TestMemCached;
import com.danga.MemCached.*;
public class TestMemcached {
public static final MemCachedClient memCachedClient;
static{
String[] servers = { "192.168.1.100:11211" };
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setFailover(true);
pool.setInitConn(10);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(true);
pool.initialize();
/*建立MemcachedClient实例*/
memCachedClient = new MemCachedClient();
}
public static void main(String[] args) {
/*初始化SockIOPool,管理memcached的连接池*/
for (int i = 0; i < 10; i++) {
/*将对象加入到memcached缓存*/
boolean success = memCachedClient.set("" + i, "Hello!");
/*从memcached缓存中按key值取对象*/
String result = (String) memCachedClient.get("" + i);
System.out.println(String.format("set( %d ): %s", i, success));
System.out.println(String.format("get( %d ): %s", i, result));
}

TestClass tc1=new TestClass();
try{
CacheService.cs.put("TestClass1", tc1);
tc1.print();
TestClass tc=(TestClass) CacheService.cs.get("TestClass1");
tc.print();
}catch(Exception ex){
ex.printStackTrace();
}
boolean success = TestMemcached.memCachedClient.set("TestClass1", tc1);
System.out.println("success="+success);
TestClass tc=(TestClass) TestMemcached.memCachedClient.get("TestClass1");
tc.print();
}
}

数据类

package com.util.TestMemCached;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
* 需要保存到Cache中的类,开始的时候没有增加implements Serializable序列化的时候执行缓存的
* set方法返回false,增加了以后就可以缓存到Memcached服务器了
* @author Administrator
*
*/
public class TestClass implements Serializable {
private int a=123;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public List getL() {
return l;
}
public void setL(List l) {
this.l = l;
}
private String b="123";
private List l;
public TestClass(){
l=new ArrayList();
for(int i=0;i<10;i++){
l.add("保存了第"+i+"个List元素!");
}
}
public void print(){
System.out.println("a="+a);
System.out.println("b="+b);
for(int i=0;i<l.size();i++){
System.out.println("("+i+")="+l.get(i));
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值