-P是设置保存Memcache的pid文件,我这里是保存在 /home/tmp/memcached.pid
这里还做了一个分布式 、记得哦 亲们 分布式是在客户端实现,利用客户端自带的hash算法实现存储到不同的服务器上
写了一些简单代码
package nettyproject.com.main; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; public class Test{ private static MemCachedClient mem = new MemCachedClient("pool"); static{ //目前是使用的是sockiopool连接池 还有一种方式是xmemcached方式 俗称memcachedclientbuilder String[] ips = {"192.168.75.88:10001","192.168.75.88:10002","192.168.75.88:10003"}; SockIOPool sip = SockIOPool.getInstance("pool");//memcached的poolName必须和此name一样 sip.setServers(ips); sip.setInitConn(50); sip.setMinConn(50); sip.setMaxConn(500); sip.setNagle(true); sip.setHashingAlg(3); sip.initialize();//调用启动pool方法 } public static void setMemcached(String key,Object value){
//有很多set方法的重载,各位可以看看java memcahced api mem.set(key, value); } public static Object getMem(String key){ return mem.get(key); } public static void main(String[] args) { Test.setMemcached("eclipse", "6.5"); Test.setMemcached("eclipse1", "6.51"); Test.setMemcached("eclipse2", "6.52"); Test.setMemcached("eclipse3", "6.53"); Test.setMemcached("eclipse4", "6.54"); Test.setMemcached("eclipse5", "6.55"); Test.setMemcached("eclipse6", "6.56"); Test.setMemcached("eclipse7", "6.57"); Test.setMemcached("eclipse8", "6.58"); //使用的是分布式memcached缓存 String s = (String)Test.getMem("eclipse"); System.out.println(s); } }
我这里只有一台服务器,所以我在一台服务器上开了三个memcached进程
执行上面的程序之后,
看官们可以登录到自己的服务器 、使用命令:telnet xxx.xxx.xx.x(ip) port(端口)
使用命令:get key 来查看值
这个分布式有一个很严重的问题、就是其中某一台服务器宕机之后 数据是找不回来的,找了网上的资料看了下 ,说是可以通过magent代理来解决,下次研究下