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 (这个看你机器负载的情况来设置)
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代理来解决,下次研究下