linux下Memcached安装步骤详解
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.???????? 代码测试:
?1
package?memcached;?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?PM10
?*/11

12

/**?*//**13
?*?使用memcached?client?for?java?客户端14
?*/15

public?class?JavaMemcachedClientTest?
{16

17

????/**?*//**18
?????*?@param?args19
?????*/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
输出结果:
?1
set(?0?):?true?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?):?true10
get(?4?):?ChenXinHan(4)11
set(?5?):?true12
get(?5?):?ChenXinHan(5)13
set(?6?):?true14
get(?6?):?ChenXinHan(6)15
set(?7?):?true16
get(?7?):?ChenXinHan(7)17
set(?8?):?true18
get(?8?):?ChenXinHan(8)19
set(?9?):?true20
get(?9?):?ChenXinHan(9) (友情提示:本博文章欢迎转载,但请注明出处:陈新汉,http://www.blogjava.net/hankchen)