Memcache 群集 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓 存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。 Memcached 基于一个存储键/值 对的 hashmap。其守护进程(daemon )是用 C 写的,但是客户端可以用任何语言来编写,并通过 memcached 协议 与守护进程通信。

一.安装软件 1.四台都安装libevent 软件

 21  tar zxf libevent-2.0.22-stable.tar.gz 
  22  cd libevent-2.0.22-stable/
  23  ./configure  && make && make install
  1. 安装 keepalived软件(keepalived 服务器 前两台) (1)安装
16  tar zxf keepalived-1.2.13.tar.gz 
 17  cd keepalived-1.2.13/
 18  yum -y install openssl-devel
 19   ./configure  --prefix=/ && make  && make install  编译安装
(2)修改vim  /etc/keepalived/keepalived.conf 
global_defs {
 router_id LVS_DEVEL_1
}

vrrp_instance VI_1 {
  state MASTER
  interface ens33
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {
      192.168.1.254
  }   
}  

![](https://s1.51cto.com/images/blog/201910/31/97b3931097c05d495dcd93bdbe92d40c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

(3)启动并查看IP地址
![](https://s1.51cto.com/images/blog/201910/31/6b1f9e4c85877baf90d25f6f88f0a66a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
  1. 安装 magent 软件(Magent 服务器 前两台)
 22  mkdir /usr/magent   创建所需文件夹
  23  tar zxf  magent-0.6.tar.gz  -C /usr/magent/
  24  cd /usr/magent/
  25  vim ketama.h
 ![](https://s1.51cto.com/images/blog/201910/31/d265b042e4b3ebd9ce8905499a616559.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201910/31/0d232ceb2229c9f593bccf5e5923f3f0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
 ![](https://s1.51cto.com/images/blog/201910/31/d9644e1dfac3682ebbe13a3a92eb4208.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
 
   27  ln -s /usr/lib64/libevent-2.0.so.5  /usr/lib64/libevent.a
   28   ln -s /usr/lib64/libm.so /usr/lib64/libm.a
   29   make
   30   ln -s /usr/magent/magent /usr/local/bin/
   31  magent  -u root -n 51200 -l 192.168.1.254 -p 1200 -s 192.168.1.30:11211  -b 192.168.1.40:11211
   32  netstat -anpt | grep 1200
4 .安装 memcached 软件(Memcached 服务器后 2 台)

![](https://s1.51cto.com/images/blog/201910/31/62ed12e720f1671ceeab48d3481118cb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
   21  tar zxf memcached-1.4.33.tar.gz  
   22  cd memcached-1.4.33/
   23   ./configure  --prefix=/usr/local/memcached  --with-libevent=/usr/local  &&  make && make install
![](https://s1.51cto.com/images/blog/201910/31/a3e0b34f3cb8aa2994dee561722fe4dd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
   25   ln -s /usr/local/memcached/bin/memcached  /usr/local/bin/
   26   memcached  -d -m 512 -l 192.168.1.30 -p 11211  -c 1024 -P  /usr/local/memcached/memcached.pid -u root
   27  netstat -anpt |grep 11211
   28   yum -y install telnet


三,telnet测试
指令格式:
<命令> <键> <标记> <有效期> <数据长度>
<命令> - command name
主要是三个储存数据的三个命令, set, add, replace
set 命令是保存一个叫做 key 的数据到服务器上
add  命令是添加一个数据到服务器,但是服务器必须保证这个 key 是不存在的,能够保证数据不会被覆盖
replace  命令是替换一个已经存在的数据,如果数据不存在,就是类似 set 功能
get  查看键数据
gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。
stats   当前所有 Memcache 服务器运行的状态信息
stats <参数>  这个指令将只返回指定参数的项目状态信息。
version  将返回以 VERSION 开头的版本信息
flush_all  这个指令执行后,服务器上所有缓存的数据都被删除,并且返回:OK
delete <键> <超时时间>  删除数据的 key 键
append  向已存在 key(键) 的 value(数据值) 后面追加数据 
prepend  用于向已存在 key(键) 的 value(数据值) 前面追加数据
CAS  通过令牌来修改内容
incr 与 decr 命令
Memcached incr 与 decr :命令用于对已存在的 key(键) 的数字值进行自增或自减操作。
quit 退出telnet模式

![](https://s1.51cto.com/images/blog/201910/31/ecd92e0ea21481c8219e5ecfb0c29a6f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201910/31/e8cf0a0e8c7e3e342e486595b91ca024.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201910/31/9989d3e9c0fd787cf7abede0242a2b04.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

在192.168.1.10 magent上测试
![](https://s1.51cto.com/images/blog/201910/31/9cbfbbd059767bff2cba1be380ef6ce5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
在192.168.1.30 memcached上测试
![](https://s1.51cto.com/images/blog/201910/31/910a258053295924131116c82efc1477.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

测试漂移地址
168.1.10
![](https://s1.51cto.com/images/blog/201910/31/92f32e71ea334eeb238c0bd0818ad719.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
168.1.20
![](https://s1.51cto.com/images/blog/201910/31/026058c9177ef25cf20bb98e8d9480c4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
168.1.10
![](https://s1.51cto.com/images/blog/201910/31/1b545f196a2edaa8146d69f37a33724e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
168.1.20
![](https://s1.51cto.com/images/blog/201910/31/16f781d5a1dd19c768b2a75d6f9ab98a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

总结:
memcache 的优点:可以做多主或者多从
memcache 的缺点:当主缓存节点当掉又恢复,之前的缓存数据会丢失