y23335793 发表于 2018-12-25 12:36:34

缓存服务器之Memcached

  Memcached简介
Memcached是一款开源、高性能、分布式内存缓存服务器,它是基于key-value的内存存储,不支持持久化。经常拿来与redis做比较,因为没有持久化
存储功能,所以memcached不能用来存储关键性数据。
  特点:
1、协议简单:纯文本协议,开销小
2、基于libevent模型能够处理高并发
3、基于内存存储,通过LRU(Least Recently Used)最近最少使用算法清除过期缓存,其清理过期缓存是基于惰性工作法则来工作的
4、分布式集群:互不通信,没有分布式集群的高可用,负载均衡等特点
5、旁挂式缓存: 与varnish不同,varnish是代理是缓存,而memcached是旁挂式缓存
  Memcached的部署
  系统环境:(CentOS 6.7)
  # cat /etc/redhat-release
CentOS release 6.7 (Final)
  源码安装:
  1、安装依赖包libevent
因为memecached基于事件驱动模型支持高并发
livevent官网 http://http://libevent.org/下载适合的版本,我这里下载是libevent-2.1.8-stable.tar.gz
  ~]#wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/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/runmemcached          //创建一个运行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                        新增或修改,如果键不存在则创建,存在则修改
command   


参数说明如下:
key   key 用于查找缓存值
flags   可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time   在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes   在缓存中存储的字节数
value   存储的值(始终位于第二行)
  例如: set userid 0 0 5
  get: get
delete: delete   
add: add                              键存在则无法创建
replace: replace   
flush_all: 清除所有缓存
stats: 显示memcached的统计数据信息
  append
prepend
incr
decr
  Memcached 缓存状态查看工具: memcached-tool
  ~]# memcached-tool 127.0.0.1



页: [1]
查看完整版本: 缓存服务器之Memcached