设为首页 收藏本站
查看: 910|回复: 0

[经验分享] Memcached构建缓存加速集群部署

[复制链接]

尚未签到

发表于 2018-12-25 10:42:10 | 显示全部楼层 |阅读模式
  前言:
  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
  

  Centos6.5最下化安装系统(Redhat6/Centos6系列)
  实验环境:magent1:192.168.1.1   magent2:192.168.1.2  漂移IP:192.168.1.10
  主缓存memcached:192.168.1.3
  从缓存memcached:192.168.1.4
  

  1、四台机器都要安装libevent软件
  [root@localhost ~]# tar -zxvf libevent-2.0.21-stable.tar.gz -C /usr/src/
  [root@localhost ~]# cd /usr/src/libevent-2.0.21-stable/
  [root@localhost libevent-2.0.21-stable]# ./configure --prefix=/usr/
  [root@localhost libevent-2.0.21-stable]# make && make install
  2、安装memcached软件
  [root@localhost ~]# tar -zxvf memcached-1.4.31.tar.gz -C /usr/src/
  [root@localhost ~]# cd /usr/src/memcached-1.4.31/
  [root@localhost memcached-1.4.31]# ./configure --enable-memcache --with-libevent=/usr/
  [root@localhost memcached-1.4.31]# make && make install
  主缓存:
  [root@localhost ~]# memcached -d -m 1024 -u root -l 192.168.1.3 -p 11211
  -d:开启守护进程daemon -m:制定分配的内存memory
  -u:用户  -l:监听的IP地址  -P:监听的端口号
  备缓存:
  [root@localhost ~]# memcached -d -m 1024 -u root -l 192.168.1.4 -p 11211
  [root@localhost ~]# netstat -anpt | grep memcached
  3、安装magent软件
  [root@localhost ~]# mkdir /usr/magent
  [root@localhost ~]# tar -zxvf magent-0.6.tar.gz -C /usr/magent/
  [root@localhost ~]# cd /usr/magent/
  [root@localhost magent]# vim ketama.h
  添加(头部添加):
  #ifndef SSIZE_MAX
  #define SSIZE_MAX 32767
  #endif
  [root@localhost magent]# ln -s /usr/lib64/libm.so /usr/lib64/libm.a
  [root@localhost magent]# ln -s /usr/lib64/libevent-1.4.so.2 /usr/lib64/libevent.a
  [root@localhost magent]# /sbin/ldconfig
  [root@localhost magent]# sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
  [root@localhost magent]# vim Makefile
  将CFLAGS = -Wall -O2 -g修改为 CFLAGS = -lrt -Wall -O2 -g
  [root@localhost magent]# make
  [root@localhost magent]# cp magent /usr/bin/
  主缓存和备缓存一样的启动命令
  [root@localhost ~]# magent -u root -n 51200 -l 192.168.1.10 -p 12000 -s 192.168.1.3:11211 -b 192.168.1.4:11211
  注意:IP192.168.1.10是后面要做的keepalived虚拟IP地址,后面要用到!
  [root@localhost ~]# magent -u root -n 51200 -l 192.168.1.10 -p 12000 -s 192.168.1.3:11211 -b 192.168.1.4:11211
  -u:用户
  -n:最大连接数
  -l:magent对外监听IP地址
  -p:magent对外监听端口
  -s:magent主缓存IP地址和端口
  -b:magent备缓存IP地址和端口
  [root@localhost ~]# ps -elf | grep magent
  4、安装keepalived软件--在magent1和magent2上面都安装
  [root@localhost ~]# tar -zxvf keepalived-1.2.13.tar.gz -C /usr/src/
  [root@localhost ~]# cd /usr/src/keepalived-1.2.13/
  [root@localhost keepalived-1.2.13]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
  PS:yum -y install kernel-devel 才能出现如上文件
  [root@localhost keepalived-1.2.13]# make && make install
  

  配置mangent1上面的keepalived
  [root@localhost ~]# vim /etc/keepalived/keepalived.conf
  修改:
  global_defs {
  router_id LVS_DEVEL_R1
  }
  vrrp_instance VI_1 {
  state MASTER        
  interface eth0
  virtual_router_id 51
  priority 100     主的优先级应该高于备机的值
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  192.168.1.10     漂移IP地址
  }
  }
  后面的部分全部删除或注释掉
  [root@localhost ~]# service keepalived restart
  [root@localhost ~]# ip add show dev eth0
  [root@localhost keepalived]# ip add show eth0
  2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 00:0c:29:82:0f:58 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
  inet 192.168.1.10/32 scope global eth0
  inet6 fe80::20c:29ff:fe82:f58/64 scope link
  valid_lft forever preferred_lft forever
  

  配置magent2的keepalived
  [root@localhost ~]# vim /etc/keepalived/keepalived.conf
  修改:
  global_defs {
  router_id LVS_DEVEL_R2
  }
  vrrp_instance VI_1 {
  state BACKUP
  priority 99
  ......
  virtual_ipaddress {
  192.168.1.10
  }
  ---其他参数与主缓存服务器保持一致----
  }
  [root@localhost ~]# service keepalived restar
  

  验证:
  客户端ping 192.168.1.10 查看VIP的变化情况。
  5、验证:
  1)用主缓存节点连接上主缓存的1200端口插入数据
  [root@localhost ~]# telnet 192.168.1.10 12000
  Trying 192.168.1.10...
  Connected to 192.168.1.10.
  Escape character is '^]'.
  输入quit  回车后即可退出telnet
  Connection closed by foreign host.
  2)查看插入的数据
  [root@localhost ~]# telnet 192.168.1.10 12000
  Trying 192.168.1.10...
  Connected to 192.168.1.10.
  Escape character is '^]'.
  输入quit  回车后即可退出telnet
  Connection closed by foreign host.
  3)连接主缓存节点的11211端口进行查看
  [root@localhost ~]# telnet 192.168.1.3 11211
  Trying 192.168.1.3...
  Connected to 192.168.1.3.
  Escape character is '^]'.
  输入quit  回车后即可退出telnet
  Connection closed by foreign host.
  4)连接主缓存节点的11211端口进行查看
  [root@localhost ~]# telnet 192.168.1.4 11211
  Trying 192.168.1.4...
  Connected to 192.168.1.4.
  Escape character is '^]'.
  输入quit  回车后即可退出telnet
  Connection closed by foreign host.
  说明主缓存节点和备缓存节点都有数据。
  宕掉主缓存节点。
  1)停止memcached进程(或者断开主缓存节点的网卡),
  2)客户端查看
  [root@localhost ~]# telnet 192.168.1.10 12000
  Trying 192.168.1.10...
  Connected to 192.168.1.10.
  Escape character is '^]'.
  

  OK,实验完毕,加油,送给一直坚持的你!嘿嘿。。。。
  本文只做了简单的安装测试,更深层次的请查看其它精选文档
  

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





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655604-1-1.html 上篇帖子: moxi处理memcached client request的详细过程 下篇帖子: MemCached学习上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表