日期:2014-05-16 浏览次数:20900 次
1.下载memcached服务器端安装文件http://www.danga.com/memcached/download.bml
2.下载libevent-1.4.12-stable.tar.gz,memcached需要用到socked,依赖此安装文件,下载地址:http://www.monkey.org/~provos/libevent/
3.由于linux系统可能默认已经安装libevent,
执行命令:rpm -qa|grep libevent查看系统是否带有该安装软件
如果有执行命令:rpm -e libevent-1.1a-3.2.1 --nodeps(由于系统自带的版本旧,忽略依赖删除)
4.安装libevent,
tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12-stable
./configure --prefix=/usr/local/libevent-1.4
make
make install
5.安装memcached
tar zxvf memcached-1.4.0.tar.gz
cd memcached-1.4.0
./configure --prefix=/usr/local/memcached-1.4 --with-libevent=/usr/local/libevent-1.4.2/
make
make install
至此memcached安装完毕
6.启动memcached命令:
./memcached -d -m 1024 -l 192.168.1.129 -p 11211
# /usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12301 -c 1000 -P /tmp/memcached.pid
相关解释如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,但是端口不能重复
注:如果在启动过程中出现如下错误:
error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
由于libevent安装的时候指定了目录,可能导致memcached找不到该文件,可以执行如下命令修改此错误
查找错误:LD_DEBUG=libs /usr/local/memcached-1.4/bin/memcached -v
会发现memcached查找依赖libevent是在/usr/lib/查找libevent-1.4.so.2
然后执行命令
ln -s /usr/local/libevent-1.4.2/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
问题即可解决
memcached的java客户端jar包下载地址:http://www.whalin.com/memcached/#download
?
?
简单应用:
SockIOPool pool = SockIOPool.getInstance();
???? ?pool.setServers(servers);
????? pool.setWeights(weighs);
????? pool.setInitConn(initConn);
????? pool.setMaxConn(maxConn);
????? pool.setMinConn(minConn);
???? ?pool.setMaxIdle(maxIdle);
????? pool.setMaintSleep(maintSleep);
????? pool.setSocketTO(socketTO);
????? pool.setNagle(false);
????? pool.initialize();
??
????? MemCachedClient mcc = new MemCachedClient();
?
?public boolean set(String key, Object value, Date expire){
??if(expire != null)
???return mcc.set(key, value, expire);
??else
???return mcc.set(key, value);
?}
?
?/**
? * 获取记录
? *
? * @param key?键值
? * @return??之前存储的数据
? */
?public Object get(String key){
??return mcc.get(key);
?}
?
?
?