将mememche服务端下载完毕后放随便找个盘子解压C:\memcached解压缩
1>开始>运行:CMD(确定)
2>cd c:\memcached
3>c:\memcached\memcached.exe -d install(回车 这步执行安装)
4>c:\memcached\memcached.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_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server
3>默认的ImagePath键的值是:"c:\memcached\memcached.exe" -d runservice,
改为:"c:\memcached\memcached.exe" -d runservice -m 1024 -p 11200 -l 192.168.1.55(确定,关闭注册表)
4>我的电脑(右键)>管理>服务 找到memcache的服务,重新启动一次即可生效。