1、Redis集群部署北京创维海通数字技术有限公司Redis集群部署方案 声明本文件以及文件所包含的知识产权和版权归北京创维海通数字技术有限公司所有,北京创维海通数字技术有限公司拥有对文件内容的全部解释权、使用权。XX或书面许可,任何机关、企业、个人均不允许对文件的内容和信息通过任何形式进行拷贝、复印和发布(例如网络、打印、复印、传真等)。一经发现,北京创维海通数字技术有限公司保留对其侵权行为进行法律追究的权利。修订历史版本号日期描述作者/贡献者V 1.02015-12-17创建黄志军 V 1.12015-12-31修改王海龙V1.22016-01-06修改1概述本文档描述如何部署实现Redis双
2、主备份。2系统方案2.1硬件设备常用的web服务器即可2.2操作系统CentOS 6.6,建议使用公司的PXE方式进行安装。2.3其他组件Keepalived可通过yum方式安装,也可对源码进行编译安装,本文以yum安装为例。Redis建议从官方网站下载源码包进行编译安装。下载链接:http:/download.redis.io/releases/redis-3.0.5.tar.gz3部署过程3.1环境准备实验环境介绍服务器名称IP组件主服务器192.168.3.185 (VIP:192.168.3.188)Redis、keepalived从服务器192.168.3.186 (VIP:192.
3、168.3.188)Redis、keepalivedYum源修改yum源配置文件#rm rf /etc/yum.repos.d/*#vim /etc/yum.repos.d/server.repomirrorname=163baseurl=enabled=1gpgcheck=0程序包上传软件包redis-3.0.5.tar.gz至/usr/local/src目录下3.2软件安装3.2.1Redis#cd/usr/local/src#tar xvf redis-3.0.5.tar.gz#cd redis-3.0.5#make#make PREFIX=/usr/local/redis instal
4、l #安装到/usr/local/redis目录下3.2.2Keepalived#yum y install keepalived3.3配置文件3.3.1Redis#cp /usr/local/src/redis-3.0.5/redis.conf /usr/local/redis/#vim /usr/local/redis/redis.confdaemonize yes #启动时以后台模式运行requirepass 123456 /注意去掉#注释,并修改密码masterauth 123456 去掉#注释,并修改密码3.3.2Keepalived#/cp /etc/keepalived/keep
5、alived.conf /etc/keepalived/keepalived.conf.bak#vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs notification_email admin notification_email_from keepalived smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL4vrrp_script chk_redis script /etc/keepalived
6、/scripts/redis_check.sh #监控redis脚本 interval 2 vrrp_instance VI_1 state MASTER #主服务器(备服务器写BACKUP) interface em1 #监听网卡名称 virtual_router_id 51 priority 101 #优先级(备服务器写100) authentication auth_type PASS auth_pass redis track_script chk_redis virtual_ipaddress 192.168.3.188 #虚IP notify_master /etc/keepali
7、ved/scripts/redis_master.sh #主模式时执行的脚本notify_backup /etc/keepalived/scripts/redis_backup.sh #备模式时执行的脚本notify_fault /etc/keepalived/scripts/redis_fault.sh #失效时执行的脚本notify_stop /etc/keepalived/scripts/redis_stop.sh #keepalived停止时的脚本说明:注意修改黄色部分3.4脚本创建脚本目录#mkdir /etc/keepalived/scripts3.4.1redis_check.s
8、h#!/bin/bashnetstat -ntlp |grep 6379RETVAL=$?if x$RETVAL = x0 ; then echo $RETVAL exit 0else echo $RETVAL exit 1fi3.4.2redis_master.sh#!/bin/bashREDISCLI=/usr/local/bin/redis-cli -a 123456LOGFILE=/var/log/keepalived-redis-state.logecho master $LOGFILEdate $LOGFILEecho Being master. $LOGFILE 2&1echo
9、Run SLAVEOF cmd . $LOGFILE$REDISCLI SLAVEOF 192.168.3.186 6379 $LOGFILE 2&1sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态echo Run SLAVEOF NO ONE cmd . $LOGFILE$REDISCLI SLAVEOF NO ONE $LOGFILE 2&1说明:黄色部分是对方主机的IP,注意修改。3.4.3redis_backup.sh#!/bin/bashREDISCLI=/usr/local/bin/redis-cli -a 123456LOGFILE=/var/log/keepal
10、ived-redis-state.logecho backup $LOGFILEdate $LOGFILEecho Being slave. $LOGFILE 2&1sleep 15 # 延迟15秒待数据被对方同步完成之后再切换主从角色echo Run SLAVEOF cmd . $LOGFILE$REDISCLI SLAVEOF 192.168.3.186 6379 $LOGFILE 2&1说明:黄色部分是对方主机的IP,注意修改。3.4.4redis_fault.sh#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho fau
11、lt $LOGFILEdate $LOGFILE3.4.5redis_stop.sh#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho stop $LOGFILEdate $LOGFILE3.4.6redis服务脚本#vim /usr/local/bin/redis#!/bin/bashBIN=/usr/local/redis/bin #注意路径CNF=/usr/local/redis/redis.conf #注意路径case $1 instart) $BIN/redis-server $CNF;stop) ps -ef |gr
12、ep redis | grep -v grep |awk print $2 |xargs kill;status) if netstat -ntlp |grep 6379 & /dev/null;then echo Redis is running. else echo Redis is not running. fi;*) echo Usage: redis ;Esac给以上脚本以执行权限#chmod +x /etc/keepalived/scripts/*.sh#chmod +x /usr/local/bin/redis4启动启动redis-server#redis start启动keep
13、alived#service keepalived start添加开机自启动#echo “/usr/local/bin/redis start” etc/rc.d/rc.local#chkconfig keepalived on5验证redis服务状态redis从服务器状态:redis主服务器状态:rootAAA2 scripts# redis-cli -a 123456 info | grep -A 8 Replication# Replicationrole:masterconnected_slaves:1slave0:ip=192.168.107.13,port=6379,state=o
14、nline,offset=3349,lag=1master_repl_offset:3349repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:17repl_backlog_histlen:3333rootlauncher scripts# service keepalived statuskeepalived (pid 108386) is running.keepalived服务状态通过VIP写入数据从其他主机获取数据模拟主服务器down掉再次获取数据查看VIP所在主机通过VIP再次写入数据获取数据恢复主服务并查看VIP状态再次获取新数据,查看是否同步。数据同步成功
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1