Month: April 2016

Redis主从配置及使用KeepAlived实现Redis高可用

一:环境介绍 Master: 172.16.206.29 Slave: 172.16.206.28 Virtural IP Address (VIP): 172.16.206.250 二:设计思路: 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby; 当 Master 挂掉,Slave 正常时, Slave接管服务,有写权限,同时关闭主从复制功能; 当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,同时Slave等待Master同步数据完成之后,恢复Slave身份。 三:安装配置前准备工作 在主服务器 172.16.206.29 上面做下面操作 echo “172.16.206.29 osb29” >> /etc/hosts echo “172.16.206.28 osb28” >> /etc/hosts 在从服务器 172.16.206.28 上面做下面操作 echo “172.16.206.29 osb29” >> /etc/hosts echo “172.16.206.28 osb28” >> /etc/hosts 四:主服务器配置redis 1.下载redis 版本2.8.19 wget http://download.redis.io/releases/redis-2.8.19.tar.gz 2.解压 tar -zxvf redis-2.8.19.tar.gz 3.cd redis-2.8.19 4.make && make install 5.cp redis.conf /etc/redis.conf cd src/ cp redis-server redis-cli redis-benchmark redis-check-aofredis-check-dump /usr/local/bin 6.修改 /etc/redis.conf里面可以把daemonize no 修改为daemonize yes 目的是可以在后台执行redis-server。 7.init.d 启动脚本     vi /etc/init.d/redis-server #!/usr/bin/env bash # # redis start up the redis server daemon # # chkconfig: 345 99 99 # description: redis service in /etc/init.d/redis # chkconfig –add redis or chkconfig –list redis # service redis start or service redis stop # processname: redis-server # config: /etc/redis.conf PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/bin/redis-server REDIS_CLI=/usr/local/bin/redis-cli PIDFILE=/var/run/redis.pid CONF=”/etc/redis.conf” #make sure some dir exist if [ ! -d /var/lib/redis ] then mkdir -p /var/lib/redis mkdir -p /var/log/redis fi case “$1” in status) ps -A|grep redis ;; start) if [ -f $PIDFILE ] then echo “$PIDFILE exists, process is already running or crashed” else echo “Starting Redis server…” $EXEC $CONF fi if [ “$?”=”0” ] then echo “Redis is running…” fi ;; stop) if [ ! -f $PIDFILE ] then echo “$PIDFILE does not exist, process is not running” else PID=$(cat $PIDFILE) echo “Stopping …” $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo “Waiting for Redis to shutdown …” sleep 1 done echo “Redis stopped”…

Read More »