Memcached简介
Memcached是一款开源、高性能、分布式内存缓存服务器,它是基于key-value的内存存储,不支持持久化。经常拿来与redis做比较,因为没有持久化
存储功能,所以memcached不能用来存储关键性数据。
特点:
1、协议简单:纯文本协议,开销小
2、基于libevent模型能够处理高并发
3、基于内存存储,通过LRU(Least Recently Used)最近最少使用算法清除过期缓存,其清理过期缓存是基于惰性工作法则来工作的
4、分布式集群:互不通信,没有分布式集群的高可用,负载均衡等特点
5、旁挂式缓存: 与varnish不同,varnish是代理是缓存,而memcached是旁挂式缓存
Memcached的部署
系统环境:(CentOS 6.7)
[root@linux-node1 ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
源码安装:
1、安装依赖包libevent
因为memecached基于事件驱动模型支持高并发
livevent官网 http://http://libevent.org/ 下载适合的版本,我这里下载是libevent-2.1.8-stable.tar.gz
~]# tar xf libevent-2.1.8-stable.tar.gz
~]# cd libevent-2.1.8-stable
~]# ./configure --prefix=/usr/local/libevent
~]# make && make install
2、源码安装memcached
下载memcached, http://www.memcached.org/files/memcached-1.4.36.tar.gz
~]# tar xf memcached-1.4.36.tar.gz
~]# cd memcached-1.4.36
~]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
~]# make && make install
~]# vim /etc/profile.d/memcached.sh //环境变量
export PATH=/usr/local/memcached/bin:$PATH
~]# . /etc/profile.d/memcached.sh
~]# memcached -h //查看帮助
~]# useradd -s /sbin/nologin -b /var/run memcached //创建一个运行memcached用户
~]# memcached -d -u memcached
~]# ss -tunlp | grep memcached //可以看出监听在tcp/11211和udp/11211
udp UNCONN 0 0 :11211 : users:(("memcached",10556,28),("memcached",10556,29),("memcached",10556,30),("memcached",10556,31))
udp UNCONN 0 0 :::11211 ::: users:(("memcached",10556,32),("memcached",10556,33),("memcached",10556,34),("memcached",10556,35))
tcp LISTEN 0 128 :::11211 ::: users:(("memcached",10556,27))
tcp LISTEN 0 128 :11211 : users:(("memcached",10556,26))
如果想使用 Sysv风格的启动方式,service memcached star|stop ,可以写一个脚本/etc/init.d/memcached,可以参照网上写的文档
也可以yum安装memcache,参照/etc/init.d/memcached 自己改一个
登录测试:
~]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
yum 安装:如果条件还是使用yum安装,也是比较推崇的方式
~]# yum -y install memcached
~]# rpm -ql memcached
~]# cat /etc/sysconfig/memcached //程序的默认配置
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
~]# service memcached start
~]# ss -t~]# netstat -lntup | grep memcached
tcp 0 0 0.0.0.0:11211 0.0.0.0: LISTEN 2738/memcached
tcp 0 0 :::11211 ::: LISTEN 2738/memcached
udp 0 0 0.0.0.0:11211 0.0.0.0: 2738/memcached
udp 0 0 :::11211 ::: 2738/memcached
Memcache常用命令:
详细信息请参考: https://github.com/memcached/memcached/wiki/Commands
set:set <key> <flags> <expire_time> <bytes> 新增或修改,如果键不存在则创建,存在则修改
command <key> <flags> <expiration time> <bytes>
<value>
参数说明如下:
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节数
value 存储的值(始终位于第二行)
例如: set userid 0 0 5
get: get <key>
delete: delete <key>
add: add <key> <flag> <expire_time> <bytes> 键存在则无法创建
replace: replace <key> <flage> <expire_time> <bytes>
flush_all: 清除所有缓存
stats: 显示memcached的统计数据信息
append
prepend
incr
decr
Memcached 缓存状态查看工具: memcached-tool
~]# memcached-tool 127.0.0.1
转载于:https://blog.51cto.com/wbilly/2150066