官方手册:https://github.com/memcached/memcached/wiki
一、centos安装和启动
- 先安装依赖yum install libevent-devel
- 下载安装包wget http://memcached.org/latest
- 解压后进入目录,因为是C语言编写,执行命令:
./configure --prefix=/usr/local/memcached
(指定安装目录)
make && make test
(测试)
make install
(安装) - 安装后启动:
./memcached -u root -l 192.168.1.103 -p 12111 -d
参数说明:
-u : root启动需要指定用户
-l :指定ip
-p : 指定端口,不指定默认11211
-c : 最大允许的并发连接数,默认1024
-d : -daemon,守护进程后台启动
-P :比如-P /usr/local/memcached/memcached.pid
,指定存放pid,结束直接kill这个
备注:也可以使用yum直接安装memcached,安装到默认位置。
二、在服务器直接测试
通过telnet连接:telnet 192.168.1.103 11211
,直接进入与memcached的交互,在此交互界面输入命令操,主要包括memcached的键值存储操作,状态查看等,更多命令操作详解,
请查看官方说明文档:https://github.com/memcached/memcached/wiki/Commands
或者查看教程:https://www.runoob.com/memcached/memcached-set-data.html
或者查看博客:https://blog.csdn.net/lizhiqiang1217/article/details/89285101
列举一个: stats
命令查看信息
STAT pid 46673 进程ID
STAT uptime 25336 服务器运行秒数
STAT time 1494173893 服务器当前unix时间戳
STAT version 1.4.13 memcached版本
STAT libevent 1.4.13-stable libevent版本
STAT pointer_size 64 操作系统位数,64位
STAT rusage_user 0.642902 进程累计用户时间
STAT rusage_system 0.303953 进程累计系统时间
STAT curr_connections 10 当前打开连接数
STAT total_connections 25 memecached运行以来连接总数
STAT connection_structures 11 memcached分配的连接结构数
STAT reserved_fds 20 内部使用的FD数
STAT cmd_get 7 执行get命令总数
STAT cmd_set 3 执行set命令总数
STAT cmd_flush 0 执行flush_all命令总数
STAT cmd_touch 0 touch命令请求总数
STAT get_hits 3 get命中次数
STAT get_misses 4 get未命中次数
STAT delete_misses 0 delete未命中次数
STAT delete_hits 1 delete命中次数
STAT incr_misses 0 incr未命中次数
STAT incr_hits 0 incr命中次数
STAT decr_misses 0 decr未命中次数
STAT decr_hits 0 decr命中次数
STAT cas_misses 0 cas未命中次数
STAT cas_hits 0 cas命中次数
STAT cas_badval 0 使用擦拭次数
STAT touch_hits 0 touch命中次数
STAT touch_misses 0 touch未命中次数
STAT auth_cmds 0 认证命令处理次数
STAT auth_errors 0 认证失败数目
STAT bytes_read 358 读取字节总数
STAT bytes_written 160 写入字节总数
STAT limit_maxbytes 16777216 分配的内存总数(字节)
STAT accepting_conns 1 目前接受的连接数
STAT listen_disabled_num 0 失效的监听数
STAT threads 4 线程数
STAT conn_yields 0 连接操作主动放弃数目
STAT hash_power_level 16 hash表等级
STAT hash_bytes 524288 当前hash表大小
STAT hash_is_expanding 0 hash表正在扩展
STAT expired_unfetched 0 已过期但未获取大对象数目
STAT evicted_unfetched 0 已驱逐但未获取大对象数目
STAT bytes 166 当前存储占用字节数
STAT curr_items 2 当前存储的数据总个数
STAT total_items 3 启动以来存储的数据总数
STAT evictions 0 LRU释放的对象数目
STAT reclaimed 0 已过期的数据条目来存储新数据的数目
三、Java客户端的缓存数据操作
java_memcached-release_2.6.6.jar和spymemcached-2.12.3.jar都提供了连接memcached的API,这里使用spymemcached-2.12.3.jar。
各个版本:https://mvnrepository.com/artifact/net.spy/spymemcached
通过maven引入spymemcached-2.12.3.jar:
<!-- https://mvnrepository.com/artifact/net.spy/spymemcached -->
<dependency>
<groupId>net.spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.12.3</version>
</dependency>
set操作:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
// 连接本地的 Memcached 服务
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessful.");
// 存储数据
Future fo = mcc.set("runoob", 900, "Free Education");
// 查看存储状态
System.out.println("set status:" + fo.get());
// 输出值
System.out.println("runoob value in cache - " + mcc.get("runoob"));
// 关闭连接
mcc.shutdown();
}catch(Exception ex){
System.out.println( ex.getMessage() );
}
}
}
更多具体的操作可以查看API文档说明。