memcache安装和简单的分布式

memcached安装: 
1.安装memcached首先得安装libevent  我这里安装的是libevent-2.0.18-stable.tar.gz   官网地址:http://libevent.org/ 
2.下载之后存放在/home/tmp/ 
3.解压tar -xvf libevent-2.0.18-stable.tar.gz   
4.安装 进入cd libevent-2.0.18-stable  执行命令:./configure --prefix=/usr 
5.安装命令:make && make install  (查看是否成功:ls -al /usr/lib | grep libevent  这个命令是会显示一堆数据哦) 


安装memcached 
1.下载memcached  官网地址是:http://code.google.com/p/memcached/downloads/list  我选择的版本是:memcached-1.4.13.tar.gz 
2.解压 tar -xvf memcached-1.4.13.tar.gz  ---->  进入cd memcached-1.4.13 
3../configure --with-libevent=/usr 
4.安装命令:make && make install(看清过程有没有出错) 
5.启动一个memcached   执行命令:/usr/local/bin/memcached -d -m 1024 -u root -l 192.168.75.88 -p 10001 -c 256 -P /home/tmp/memcached.pid  


以下是各个参数的解释: 


-d选项是启动一个守护进程, 
-m是分配给Memcache使用的内存数量,单位是MB,我这里是1024MB, 
-u是运行Memcache的用户,我这里是root, 
-l是监听的服务器IP地址 
-p是设置Memcache监听的端口  
-c选项是最大运行的并发连接数,默认是1024 (这个看你机器负载的情况来设置) 

-P是设置保存Memcache的pid文件,我这里是保存在 /home/tmp/memcached.pid


这里还做了一个分布式  、记得哦 亲们 分布式是在客户端实现,利用客户端自带的hash算法实现存储到不同的服务器上

写了一些简单代码

    

01 package nettyproject.com.main;
02  
03 import com.danga.MemCached.MemCachedClient;
04 import com.danga.MemCached.SockIOPool;
05  
06 public class Test{
07      
08     private static MemCachedClient mem = new MemCachedClient("pool");
09      
10     static{
11         //目前是使用的是sockiopool连接池  还有一种方式是xmemcached方式    俗称memcachedclientbuilder
12         String[] ips = {"192.168.75.88:10001","192.168.75.88:10002","192.168.75.88:10003"};
13          
14         SockIOPool sip = SockIOPool.getInstance("pool");//memcached的poolName必须和此name一样
15         sip.setServers(ips);
16         sip.setInitConn(50);
17         sip.setMinConn(50);
18         sip.setMaxConn(500);
19         sip.setNagle(true);
20         sip.setHashingAlg(3);
21         sip.initialize();//调用启动pool方法
22     }
23      
24     public static void setMemcached(String key,Object value){
01                 //有很多set方法的重载,各位可以看看java memcahced api
02         mem.set(key, value);
03     }
04      
05     public static Object getMem(String key){
06          
07         return mem.get(key);
08     }
09      
10     public static void main(String[] args) {
11          
12         Test.setMemcached("eclipse""6.5");
13         Test.setMemcached("eclipse1""6.51");
14         Test.setMemcached("eclipse2""6.52");
15         Test.setMemcached("eclipse3""6.53");
16         Test.setMemcached("eclipse4""6.54");
17         Test.setMemcached("eclipse5""6.55");
18         Test.setMemcached("eclipse6""6.56");
19         Test.setMemcached("eclipse7""6.57");
20         Test.setMemcached("eclipse8""6.58");
21          
22         //使用的是分布式memcached缓存
23         String s = (String)Test.getMem("eclipse");
24         System.out.println(s);
25     }
26 }


我这里只有一台服务器,所以我在一台服务器上开了三个memcached进程

执行上面的程序之后,

看官们可以登录到自己的服务器 、使用命令:telnet xxx.xxx.xx.x(ip) port(端口)

使用命令:get  key  来查看值

这个分布式有一个很严重的问题、就是其中某一台服务器宕机之后 数据是找不回来的,找了网上的资料看了下 ,说是可以通过magent代理来解决,下次研究下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值