安装libevent,命令如下
yum install libevent libevent-devel
安装memcached
wget http://memcached.org/latest
tar -zxvf latest
cd memcached-1.4.24/
./configure --prefix=/usr/local/memcached
make && make install
启动
/usr/local/memcached/bin/memcached -d -u root -m 512 -p 11211
启动参数说明:
-d 选项是启动一个守护进程。
-u root 表示启动memcached的用户为root。
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。
-p 是设置Memcache的TCP监听的端口,默认为11211
检查是否启动成功:
pgrep memcached
netstat -tulpn | grep :11211
ps -ef | grep memcached
防火墙设置
firewall-cmd --zone=public --add-port=11211/tcp --permanent
firewall-cmd --zone=public --add-port=11211/udp --permanent
firewall-cmd --reload
java客户端测试,使用的是Memcached Java Client API
下载java_memcached-release相关的jar包并引入
测试代码
public class TestMemCached {
@Before
public void init() {
/*初始化SockIOPool,管理memcached的连接池*/
String[] servers = { "192.168.80.11:11211" };
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setFailover(true);
pool.setInitConn(10);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(true);
pool.initialize();
}
@Test
public void test() {
/*建立MemcachedClient实例*/
MemCachedClient memCachedClient = new MemCachedClient();
for (int i = 0; i < 3; i++) {
/*将对象加入到memcached缓存*/
boolean success = memCachedClient.set("" + i, "Hello!" + i);
/*从memcached缓存中按key值取对象*/
String result = (String) memCachedClient.get("" + i);
System.out.println("第" + (i + 1) + "条" + (success ? "插入成功!" : "插入失败!"));
System.out.println("获取的值是:" + result);
}
}
@Test
public void testSet() {
MemCachedClient memCachedClient = new MemCachedClient();
System.out.println(memCachedClient.set("test", "heheda!", new Date(new Date().getTime() + 10000))); // 设置10秒超时
}
@Test
public void testGet() {
MemCachedClient memCachedClient = new MemCachedClient();
System.out.println(memCachedClient.get("test"));
}
}