memcached缓存 window下使用方法记录下。

将mememche服务端下载完毕后放随便找个盘子解压C:memcached解压缩
1>开始>运行:CMD(确定)
2>cd c:memcached
3>c:memcachedmemcached.exe -d install(回车 这步执行安装)
4>c:memcachedmemcached.exe -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用默认11211端口)

此时memcache服务器已经可以正常使用了。

使用java客户端进行调用。需下载客户端的jar包:

1,java_memcached-release_2.6.6.jar

2,commons-pool-1.5.6.jar

3,slf4j-api-1.6.1.jar

4,slf4j-simple-1.6.1.jar

随便写了测试代码:

public class Memcached {protected static MemCachedClient mc = new MemCachedClient();protected static Memcached m = new Memcached();static{String[] servers = {"192.168.1.2:11211"}; //服务器列表Integer[] weights= {3}; //服务器权重SockIOPool pool = SockIOPool.getInstance(); //获取socket连接池pool.setServers(servers);pool.setWeights(weights);		pool.setInitConn(5); //设置初始连接
		pool.setMinConn(5); //设置最小连接
		pool.setMaxConn(250);//最大连接数
		pool.setMaxIdle(1000*60*60*6);//设置可用连接池的最长等待时间
		
		pool.setMaintSleep(0);//设置连接池维护线程的睡眠时间,设置为0,维护线程不启动,维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数.以控制连接创建和关闭。
		
		pool.setNagle(false);//设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)
		pool.setSocketTO(3000);//设置socket的读取等待超时值
		pool.setSocketConnectTO(0);//设置socket的连接等待超时值
		pool.setAliveCheck(false);//设置连接心跳监测开关。
		//设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE,默认状态是false。
		pool.setFailback(true); //设置连接失败恢复开关,设置为TRUE,当宕机的服务器启动或中断的网络连接后,这个socket连接还可继续使用,否则将不再使用,默认状态是true,建议保持默认。
		
		pool.setFailover(true);//设置容错开关.当当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认。
	pool.initialize();//		mc.setCompressEnable(true);
//		mc.setCompressThreshold(64*1024);}protected Memcached(){}public static Memcached getInstance(){return m;}public boolean add(String key,Object value){return mc.add(key, value);}public boolean add(String key,Object value,Date date){return mc.add(key, value,date);}public boolean replace(String key,Object value){return mc.replace(key, value);}public boolean replace(String key,Object value,Date date){return mc.replace(key, value,date);}public Object get(String key){return mc.get(key);}public static void main(String[]args){Memcached cache = Memcached.getInstance();//cache.add("hello", 1234);
		System.out.println("getValue1=="+cache.get("hello"));
		cache.delete("bean"); //清除缓存
		
		TBean t = new TBean();
		t.setName("Nacey");
		cache.add("bean", t); //增加缓存
		System.out.println("getValue2=="+((TBean)cache.get("bean")).getName());
		
		t.setName("章***");
		cache.replace("bean", t);//修改缓存
		System.out.println("getValue2=="+((TBean)cache.get("bean")).getName());}

 打印结果:

getValue1==null
getValue2==Nacey
getValue2==章***

如果需修改端口或内存大小:


1>用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放在192.168.1.55的服务器上

2>修改端口,如改为11200

3>分配内存,如分配1024M(1G内存)

方法如下:
1>开始>运行:regedit(回车)
2>在注册表中找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached Server
3>默认的ImagePath键的值是:"c:memcachedmemcached.exe" -d runservice,
改为:"c:memcachedmemcached.exe" -d runservice -m 1024 -p 11200 -l 192.168.1.55(确定,关闭注册表)
4>我的电脑(右键)>管理>服务 找到memcache的服务,重新启动一次即可生效。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平