原文地址:http://www.cnblogs.com/zhongshengzhen/
先安装libevent,memcached依赖libevent的lib
[[email protected]_64_81_centos download]# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
[[email protected]_64_81_centos download]# tar zxvf libevent-1.2.tar.gz
[[email protected]_64_81_centos download]# cd libevent-1.2
设置安装目录
[[email protected]_64_81_centos libevent-1.2]# ./configure --prefix=/usr/
安装
[[email protected]_64_81_centos libevent-1.2]# make && make install
测试是否安装成功
[[email protected]_64_81_centos memcached-1.2.0]# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 Jan 14 17:47 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 264056 Jan 14 17:47 libevent-1.2.so.1.0.3
-rw-r--r-- 1 root root 430396 Jan 14 17:47 libevent.a
-rwxr-xr-x 1 root root 814 Jan 14 17:47 libevent.la
lrwxrwxrwx 1 root root 21 Jan 14 17:47 libevent.so -> libevent-1.2.so.1.0.3
安装memcache
Memcache是一个hash表形式的缓存服务。用户缓存数据达到提供响应效率和处理高并发的情况。
[[email protected]_64_81_centos download]# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
[[email protected]_64_81_centos download]# tar zxvf memcached-1.2.0.tar.gz
[[email protected]_64_81_centos download]#cd memcached-1.2.0
[[email protected]_64_81_centos memcached-1.2.0]# ./configure -with-libevent=/usr
[[email protected]_64_81_centos memcached-1.2.0]# make
[[email protected]_64_81_centos memcached-1.2.0]# make install
测试是否安装成功
[[email protected]_64_81_centos memcached-1.2.0]# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 113188 Jan 14 17:51 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 117535 Jan 14 17:51 /usr/local/bin/memcached-debug
启动memcached
[[email protected] ~]# /usr/local/bin/memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
root 用户名
512缓存大小512M
192.168.137.33 本机ip
11211分配的端口
256是连接数
卸载memcached
1.结束memcached进程
# killall memcached
2.删除memcached目录及文件
# rm -rf /usr/local/memcached
# rm -f /etc/rc.d/init.d/memcached
3.关闭memcached开机启动
# chkconfig memcached off
4.把memcached移出开机启动
# chkconfig --del memcached
错误说明:
1、[[email protected]_64_81_centos memcached-1.2.0]# /usr/local/bin/memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory
解决:
原因是memcached在/usr/lib/找不到文件,因而设置一个软连接如下:
[[email protected]_64_81_centos lib]# ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/
spring+java测试Memcache
spring配置:
<bean id="testCached" class="com.danga.MemCached.MemCachedClient">
<constructor-arg><value>neeaMemcachedPoolUserLogin</value></constructor-arg>
</bean>
<bean id="memcachedPooluserLogin" class="com.danga.MemCached.SockIOPool" factory-method="getInstance"
init-method="initialize" destroy-method="shutDown">
<constructor-arg><value>neeaMemcachedPoolUserLogin</value></constructor-arg>
<property name="servers">
<list>
<value>127.0.0.1:11211</value>
</list>
</property>
<property name="initConn"><value>20</value></property>
<property name="minConn"><value>10</value></property>
<property name="maxConn"><value>800</value></property>
<property name="maintSleep"><value>30</value></property>
<property name="nagle"><value>false</value></property>
<property name="socketTO"><value>3000</value></property>
</bean>
JAVA代码:
@Component
public class SysCacheHelper {
@Autowired
@Qualifier("testCached")
private MemCachedClient cache;
public boolean setSysCache(int categoryId, TSysConfig sysConfig){
return cache.set(Constants.SYS_PREFIX + categoryId, sysConfig, LoginedCacheHelper.get3DayCalendarTime(Constants.SYS_CACHE_EXPIRED_DAY));
}
public TSysConfig getSysCache(int categoryId){
return (TSysConfig)cache.get(Constants.SYS_PREFIX + categoryId);
}
public boolean removeSysCache(int categoryId){
return cache.delete(Constants.SYS_PREFIX + categoryId);
}
}
可以调用方法查看memcached中的内容。
示例代码只是摘录重要片段。