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;
import?com.danga.MemCached.MemCachedClient;
import?com.danga.MemCached.SockIOPool;
/**?*//**
?*??Copyright?(C):?2009
?*??@author?陈新汉
?*??Nov?17,?2009?3:35:40?PM
?*/
/**?*//**
?*?使用memcached?client?for?java?客户端
?*/
public?class?JavaMemcachedClientTest?
{
????/**?*//**
?????*?@param?args
?????*/
????public?static?void?main(String[]?args)?
{
????????/**//*初始化SockIOPool,管理memcached的连接池*/
????????String[]?servers?=?
{?"192.168.13.236:12001"?};
????????SockIOPool?pool?=?SockIOPool.getInstance();
????????pool.setServers(servers);
????????pool.setFailover(true);
????????pool.setInitConn(10);
????????pool.setMinConn(5);
????????pool.setMaxConn(50);
????????pool.setMaintSleep(30);
????????pool.setNagle(false);
????????pool.setSocketTO(3000);
????????pool.setAliveCheck(true);
????????pool.initialize();
????????/**//*建立MemcachedClient实例*/
????????MemCachedClient?memCachedClient?=?new?MemCachedClient();
????????for?(int?i?=?0;?i?<?10;?i++)?
{
????????????/**//*将对象加入到memcached缓存*/
????????????boolean?success?=?memCachedClient.set(""?+?i,?"ChenXinHan("+i+")");
????????????/**//*从memcached缓存中按key值取对象*/
????????????String?result?=?(String)?memCachedClient.get(""?+?i);
????????????System.out.println(String.format("set(?%d?):?%s",?i,?success));
????????????System.out.println(String.format("get(?%d?):?%s",?i,?result));
????????}
????}
}
输出结果:
?1
set(?0?):?true
get(?0?):?ChenXinHan(0)
set(?1?):?true
get(?1?):?ChenXinHan(1)
set(?2?):?true
get(?2?):?ChenXinHan(2)
set(?3?):?true
get(?3?):?ChenXinHan(3)
set(?4?):?true
get(?4?):?ChenXinHan(4)
set(?5?):?true
get(?5?):?ChenXinHan(5)
set(?6?):?true
get(?6?):?ChenXinHan(6)
set(?7?):?true
get(?7?):?ChenXinHan(7)
set(?8?):?true
get(?8?):?ChenXinHan(8)
set(?9?):?true
get(?9?):?ChenXinHan(9) (友情提示:本博文章欢迎转载,但请注明出处:陈新汉,http://www.blogjava.net/hankchen)