1.安装libevent
(1)检查系统是否安装了gcc和gcc-c++
rpm -q gcc rpm -q gcc-c++ rpm -q make
(2)安装libevent
从http://libevent.org/ 下载最新libevent进行安装
tar -xzvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure --prefix=/usr make sudo make install
安装完后可以查看下安装位置,以及是否安装成功
whereis libevent-2.0.so.5 ls -al /usr/lib | grep libevent
(3)安装Memcached
从 http://memcached.org/ 下载Memcached
tar -xvzf memcached-1.4.20.tar.gz // 1.4.21 压缩包可能没有用gzip格式压缩,解压的时候不用加上z // tar -xvf memcached-1.4.21.tar.gz cd memcached-1.4.20 ./configure --prefix=/usr/local/memcached --with-libevent=/usr make sudo make install make test
测试是否安装成功
ls -al /usr/local/memcached/
如果make test时出现下面Error
prove ./t make: prove: Command not found make: *** [test] Error 127
可以安装perl-Test*
sudo yum install perl-Test*
2.启动或关闭Memcached
(1)执行命令启动memcached
/usr/local/memcached/bin/memcached -d -m 1024 -u root -p 11211 -c 128 -P /tmp/memcached.pid
memcache启动的一些参数说明:
memcached命令参数解释:
-p <num> 监听的端口
-l <ip_addr> 连接的IP地址, 默认是本机
-d start 启动memcached 服务
-d restart 重起memcached 服务
-d stop|shutdown 关闭正在运行的memcached 服务
-d install 安装memcached 服务
-d uninstall 卸载memcached 服务
-u <username> 以<username>的身份运行 (仅在以root运行的时候有效)
-m <num> 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c <num> 最大同时连接数,默认是1024
-f <factor> 块大小增长因子,默认是1.25
-n <bytes> 最小分配空间,key+value+flags默认是48
-h 显示帮助
-P 是保存Memcache的pid文件,这里保存在 /tmp/memcached.pid
(2)关闭Memcached
kill -9 `cat /tmp/memcached.pid`
3.telnet Memcached
(1)开放11211端口
sudo vi /etc/sysconfig/iptables
添加下面一行,yy复制一行,p粘贴
-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
重启
service iptables restart iptables -L
(1)安装telnet服务及命令
sudo yum install telnet-server sudo yum install telnet
(2)激活telnet
编辑/etc/xinetd.d/telnet文件,确保disable的值为no
sudo vim /etc/xinetd.d/telnet
重启服务
sudo service xinetd restart
(3) 连接及退出
命令如下:
telnet 127.0.0.1 11211 stats quit
4.SpyMemcached
引入一下依赖
<dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>2.11.4</version> </dependency>
测试代码
public static void main(String[] args) { try { MemcachedClient client = new MemcachedClient(new InetSocketAddress("192.168.158.131", 11211)); Object someObject = new ArrayList<String>(); // Store a value (async) for one hour client.set("someKey", 3600, someObject); // Retrieve a value. Object myObject = client.get("someKey"); System.out.println(myObject instanceof ArrayList); client.shutdown(); } catch (Exception e) { e.printStackTrace(); } }