Linux服务搭建篇:分布式内存对象缓存系统memcached安装与使用
Memcached是一种高性能的分布式内存对象缓存系统(memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能,其“分布式”由客户端函数库完成,成熟算法的为一致性Hash),用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。很多大型网站都使用了Memcached做缓存。MemCache依赖于libevent,后者是一个基于事件触发的网络库。
下面介绍Linux下MemCache数据库的安装和使用。
libevent版本:libevent-2.0.22-stable.tar.gz
MemCache版本:memcached-1.4.29.tar.gz
本地虚拟机IP:192.168.88.10
一、编译安装
1 安装libevent
//make install后会在==prefix指定的地方产生 bin、include、lib 文件夹
1.1下载libevent和memcached安装包
下载链接:
https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
http://www.memcached.org/files/memcached-1.4.29.tar.gz
这里使用的是迅雷下载
然后我们把压缩包上传到虚拟机
1.2解压libevent
将解压后的文件存放到/usr/local/src目录
1.3配置(提前安装gcc环境)
1.4编译与安装
注意看看后面有没有报错!
2安装Memcached服务端
//make install后会在==prefix指定的地方产生 bin、include、share 文件夹
2.1 解压
2.2 配置
2.3 编译与安装
3 启动Memcached
运行 telnet localhost 11211 能连上则说明启动成功,退出命令是quit
二、yum安装(一般会安装最新版本)
2.1 安装mamcached
yum安装就比较简单了,只要虚拟机可以上网,yun能用即可安装
yum install -y memcached-devel.x86_64 memcached.x86_64
2.2 安装依赖
yum install -y gcc gcc-c++ automake autoconf make cmake libevent-devel.x86_64
2.3 查看memcached端口号和进程号
netstat -tunpl|grep 11211
先安装net工具
还没有启动,所以查不到
启动memcached,systemctl start memcached
2.4 连接memcached服务
三、memcached基础命令
3.1 Memcached set 命令
Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。
如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。
语法:
set 命令的基本语法格式如下:
set key flags exptime bytes [noreply]
value
参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes:在缓存中存储的字节数
noreply(可选): 该参数告知服务器不需要返回数据
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
举个栗子
以下实例中我们设置:
key → ikun
flag → 0
exptime → 900 (以秒为单位)
bytes → 9 (数据存储的字节数)
value → memcached
如果数据设置成功,则输出:
3.2 Memcached get 命令
Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。
语法:
get 命令的基本语法格式如下:
get key
多个 key 使用空格隔开,如下:
get key1 key2 key3
参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
实例
在以下实例中,我们使用 runoob 作为 key,过期时间设置为 900 秒。
3.3 再来一个命令stats
Memcached stats 命令
Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。
语法:
stats 命令的基本语法格式如下:
我们使用了 stats 命令来输出 Memcached 服务信息。
这里显示了很多状态信息,下边详细解释每个状态项:
pid: memcache服务器进程ID
uptime:服务器已运行秒数
time:服务器当前Unix时间戳
version:memcache版本
pointer_size:操作系统指针大小
rusage_user:进程累计用户时间
rusage_system:进程累计系统时间
curr_connections:当前连接数量
total_connections:Memcached运行以来连接总数
connection_structures:Memcached分配的连接结构数量
cmd_get:get命令请求次数
cmd_set:set命令请求次数
cmd_flush:flush命令请求次数
get_hits:get命令命中次数
get_misses:get命令未命中次数
delete_misses:delete命令未命中次数
delete_hits:delete命令命中次数
incr_misses:incr命令未命中次数
incr_hits:incr命令命中次数
decr_misses:decr命令未命中次数
decr_hits:decr命令命中次数
cas_misses:cas命令未命中次数
cas_hits:cas命令命中次数
cas_badval:使用擦拭次数
auth_cmds:认证命令处理的次数
auth_errors:认证失败数目
bytes_read:读取总字节数
bytes_written:发送总字节数
limit_maxbytes:分配的内存总大小(字节)
accepting_conns:服务器是否达到过最大连接(0/1)
listen_disabled_num:失效的监听数
threads:当前线程数
conn_yields:连接操作主动放弃数目
bytes:当前存储占用的字节数
curr_items:当前存储的数据总数
total_items:启动以来存储的数据总数
evictions:LRU释放的对象数目
reclaimed:已过期的数据条目来存储新数据的数目