Linux下Memcached安装步骤详解
(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)
1. 首先下载memcached 和 libevent 包。 Memcached用到了libevent这个库用于Socket的处理。下面是下载的两个包文件:
libevent-1.4.12-stable.tar.gz
memcached-1.4.3.tar.gz
2. 上传这两个包到/tmp/chenxinhan/memcached目录(自建目录)下。
3. 解压并安装:
tar -zxf libevent-1.4.12-stable.tar.gz
tar -zxf memcached-1.4.3.tar.gz
cd libevent-1.4.12-stable
./configure --prefix=/usr
make
make install
cd ../ memcached-1.4.3
./configure --with-libevent=/usr
make
makeinstall
4. 启动Memcached
完成上述操作后,memcached被安装/usr/local/bin/目录下。启动Memcache的服务器的命令:
/usr/local/bin/memcached -d -m 1024 -u root -l 192.168.13.236 -p 12001 -c 256 -P /tmp/chenxinhan/memcached.pid
参数说明:
-d 选项是启动一个守护进程,
-m 是分配给Memcache使用的内存数量,单位是MB,这里是1GB,
-u 是运行Memcache的用户,这里是root,
-l 是监听的服务器IP地址,如果有多个地址的话,以逗号隔开。这里指定了服务器的IP地址192.168.13.236,
-p 是设置Memcache监听的端口,我这里设置了12001,最好是1024以上的端口,
-c 选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P 是设置保存Memcache的pid文件,我这里是保存在 /tmp/chenxinhan/memcached.pid,
5. 结束Memcache进程,执行:
kill `cat /tmp/chenxinhan/memcached.pid`
或者:
ps -aux | grep memcache
然后直接kill掉memcache进程。
6. 可以启动多个守护进程,但是端口不能一样。这样就可以在一台机器上拥有多个Memcached
7. 代码测试:
2
3 import com.danga.MemCached.MemCachedClient;
4 import com.danga.MemCached.SockIOPool;
5
6 /** */ /**
7 * Copyright (C): 2009
8 * @author 陈新汉
9 * Nov 17, 2009 3:35:40 PM
10 */
11
12 /** */ /**
13 * 使用memcached client for java 客户端
14 */
15 public class JavaMemcachedClientTest {
16
17 /** *//**
18 * @param args
19 */
20 public static void main(String[] args) {
21 /**//*初始化SockIOPool,管理memcached的连接池*/
22 String[] servers = { "192.168.13.236:12001" };
23 SockIOPool pool = SockIOPool.getInstance();
24 pool.setServers(servers);
25 pool.setFailover(true);
26 pool.setInitConn(10);
27 pool.setMinConn(5);
28 pool.setMaxConn(50);
29 pool.setMaintSleep(30);
30 pool.setNagle(false);
31 pool.setSocketTO(3000);
32 pool.setAliveCheck(true);
33 pool.initialize();
34 /**//*建立MemcachedClient实例*/
35 MemCachedClient memCachedClient = new MemCachedClient();
36 for (int i = 0; i < 10; i++) {
37 /**//*将对象加入到memcached缓存*/
38 boolean success = memCachedClient.set("" + i, "ChenXinHan("+i+")");
39 /**//*从memcached缓存中按key值取对象*/
40 String result = (String) memCachedClient.get("" + i);
41 System.out.println(String.format("set( %d ): %s", i, success));
42 System.out.println(String.format("get( %d ): %s", i, result));
43 }
44 }
45
46}
47
输出结果:
2 get( 0 ): ChenXinHan( 0 )
3 set( 1 ): true
4 get( 1 ): ChenXinHan( 1 )
5 set( 2 ): true
6 get( 2 ): ChenXinHan( 2 )
7 set( 3 ): true
8 get( 3 ): ChenXinHan( 3 )
9 set( 4 ): true
10 get( 4 ): ChenXinHan( 4 )
11 set( 5 ): true
12 get( 5 ): ChenXinHan( 5 )
13 set( 6 ): true
14 get( 6 ): ChenXinHan( 6 )
15 set( 7 ): true
16 get( 7 ): ChenXinHan( 7 )
17 set( 8 ): true
18 get( 8 ): ChenXinHan( 8 )
19 set( 9 ): true
20 get( 9 ): ChenXinHan( 9 )
(友情提示:本博文章欢迎转载,但请注明出处:陈新汉,http://www.blogjava.net/hankchen)