Linux安装Memcached
一、概述
1、Memcached
memcached官网:http://memcached.org
安装、配置、使用教程,均可参见W3C:https://www.w3cschool.cn/memcached/
2、libevent
libevent官网:http://libevent.prg/ 此网站可能需要*。
二、准备工作
1、下载安装包:memcached-1.5.12.tar.gz
地址:http://memcached.org/downloads
2、下载memcached依赖库libevent
进入官网,http://libevent.prg/ 此网站需要*。下载最新稳定版。libevent-2.1.8-stable.tar.gz
3、上传至Linux
/root/文档/05.memcached/
/root/文档/06.libevent/
三、安装libevent库
1、安装GCC依赖
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
若出错请多试几次
查看已安装版本:
gcc --version
2、解压源码
cd /root/exe/06.libevent
tar -zxvf libevent-2.1.8-stable.tar.gz
3、配置安装位置
cd /root/exe/06.libevent/libevent-2.1.8-stable
mkdir /usr/local/src/06.libevent
./configure --prefix=/usr/local/src/06.libevent
出现以下提示,表示配置完成
4、编译
make
编译时32位Linux会报出下边错误,这个不用管,编译程序会处理:
5、安装
make install
6、检查
ls -al /usr/local/src/06.libevent/lib | grep libevent
四、安装Memcached
1、解压源码
cd /root/exe/05.memcached
tar -zxvf memcached-1.5.12.tar.gz
2、配置安装位置
cd /root/exe/05.memcached/memcached-1.5.12
./configure --prefix=/usr/local/src/05.memcached
命令执行遇到错误:没有安装libevent库
如果确实已安装过libevent,根据提示,使用--with-libevent=/dir/命令
./configure --prefix=/usr/local/src/05.memcached --with-libevent=/usr/local/src/06.libevent/
3、编译
make
4、安装
make install
五、操作memcached
1、命令帮助
/usr/local/src/05.memcached/bin/memcached -h
启动选项:
-d是启动一个守护进程;
-m是分配给Memcache使用的内存数量,单位是MB;
-u是运行Memcache的用户;
-l是监听的服务器IP地址,可以有多个地址;
-p是设置Memcache监听的端口,,最好是1024以上的端口;
-c是最大运行的并发连接数,默认是1024;
-P是设置保存Memcache的pid文件。
2、启动memcached
1、作为前台程序启动:
/usr/local/src/05.memcached/bin/memcached -p 11211 -m 512m -vv -u root
按Ctrl+C退出
2、作为后台服务程序启动
/usr/local/src/05.memcached/bin/memcached -p 11211 -m 512m -d -u root
后台状态下关闭程序:
ps -ef | grep memcached
3、查看memcached是否开启
netstat -ntpl | grep memcache
3、开放11211端口
1、查看机器开放的端口号
/etc/init.d/iptables status
2、开放3306端口号
/sbin/iptables -I INPUT -p tcp --dport 11211 -j ACCEPT
3、让配置文件生效
/etc/rc.d/init.d/iptables save
4、连接memcached
memcached以后台方式启动,打开一个新的窗口,输入以下命令连接memcached:
telnet 127.0.0.1 11211
若提示:-bash: telnet: command not found,则需要安装Telnet服务
yum list telnet* 列出telnet相关的安装包
yum install telnet-server 安装telnet服务
yum install telnet.* 安装telnet客户端
安装完成,再次连接:
5、windows连接Linux上的memcached
memcached以后台方式启动,windows打开CMD,输入以下命令连接memcached:
telnet 192.168.25.129 11211
报出上边错误,执行如下操作:
注:成功进入后,CMD会一直处于黑屏状态,等待输入命令(输入的命令是看不见的)
此时输入:
stats
之后输入的命令都是可见的。
六、memcached基础命令
1、设置:SET
1、语法:
set key flags exptime bytes [noreply]
value
2、说明:
无论如何都添加或更新的set 命令 (值不存在则添加 存在则更新) set 设置后可以用get命令获取值 也可以使用delete命令删除该值
3、参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息。
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes:在缓存中存储的字节数
noreply(可选): 该参数告知服务器不需要返回数据
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
2、添加:ADD
1、语法:
add key flags exptime bytes
value
2、说明:
只有key不存在时才能添加
3、参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息。
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes:在缓存中存储的字节数
noreply(可选): 该参数告知服务器不需要返回数据
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
3、查找:get
1、语法:
get key1 [key2 …]
2、说明:
获取一个或多个指定key中的 value,如果 key 不存在,则返回空。
3、参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
4、修改:replace
1、语法:
replace key flags exptime bytes [noreply]
value
2、说明:
修改指定key的value值、flags、exptime、bytes,只有key存在时才能修改
3、参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息。
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes:在缓存中存储的字节数
noreply(可选): 该参数告知服务器不需要返回数据
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
5、删除:delete
1、语法:
delete key1 [key2 …] [noreply]
2、说明:
删除一个或多个指定的key,只有key存在时才能删除
3、参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
noreply(可选): 该参数告知服务器不需要返回数据
6、追加:append、prepend
1、语法:
append/prepend key flags exptime bytes [noreply]
value
2、说明:
append:在指定的key的value值后面追加数据;
prepend:在指定的key的value值前面追加数据。
3、参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息。
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes:追加的字节数
noreply(可选): 该参数告知服务器不需要返回数据
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
七、memcached系统命令
1、stats
1、语法:
stats
2、说明:
stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。
3、这里显示了很多状态信息,下边详细解释每个状态项:
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:已过期的数据条目来存储新数据的数目
2、stats items
1、语法:
stats items
2、说明:
stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。
3、stats slabs
1、语法:
stats slabs
2、说明:
stats slabs 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等。
4、stats sizes
1、语法:
stats sizes
2、说明:
stats sizes 命令用于显示所有item的大小和个数。该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。
5、flush_all
1、语法:
flush_all [time] [noreply]
2、说明:
flush_all 命令用于用于清理缓存中的所有 key=>value(键=>值) 对。该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。