Redis主从配置及通过Keepalived实现Redis自动切换高可用

[日期:2014-07-23] 来源:Linux社区  作者:fuquanjun [字体:大 中 小]

一:环境介绍:

Master: 192.168.1.4

Slave: 192.168.1.5

Virtural IP Address (VIP): 192.168.1.253

二:设计思路:

当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby;

当 Master 挂掉,Slave 正时, Slave接管服务,同时关闭主从复制功能;

当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Master同步数据完成之后,恢复Slave身份。

然后依次循环。

需要注意的是,这样做需要在Master与Slave上都开启本地化策略,否则在互相自动切换的过程中,未开启本地化的一方会将另一方的数据清空,造成数据完全丢失。

三:安装配置前准备工作

1.在主服务器192.168.1.4上面做下面操作

echo "192.168.1.4 test01" >> /etc/hosts

echo "192.168.1.5 test" >> /etc/hosts

2.在从服务器192.168.1.5上面做下面操作

echo "192.168.1.4 test01" >> /etc/hosts

echo "192.168.1.5 test" >> /etc/hosts

四:主服务器配置redis

1.下载安装redis软件包

wget http://download.redis.io/releases/redis-2.8.12.tar.gztar xf redis-2.8.12.tar.gz

cd redis-2.8.12

make && make install

cd src/

cp redis-server redis-cli redis-benchmark redis-check-aof redis-check-dump /usr/local/bin

cd /usr/local/bin

ls -ll

然后将源码中的 redis.conf 复制到 /etc/redis.conf

cp /root/redis-2.8.12/redis.conf /etc/redis.conf

修改 /etc/redis.conf里面可以把  daemonize no 修改为daemonize yes

就可以默认在后台执行redis-server了。

再制作一个 init.d 的启动脚本:

vim /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"

fi

;;

restart|force-reload)

${0} stop

${0} start

;;

*)

echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2

exit 1

esac

chmod o+x /etc/init.d/redis-server

chkconfig --add redis-server

service redis-server start

--------------------------------------分割线 --------------------------------------

Ubuntu 14.04下Redis安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis http://www.linuxidc.com/Linux/2013-06/85816.htm

Redis系列-安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm

CentOS 6.3安装Redis http://www.linuxidc.com/Linux/2012-12/75314.htm

Redis配置文件redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm

CentOS 6.3下Haproxy+Keepalived+Apache配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现WEB群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Keepalived+Haproxy配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

Haproxy+Keepalived构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

--------------------------------------分割线 --------------------------------------

五:从发服务器配置redis

从服务器,配置一样,只不过 修改/etc/redis.conf 中

slaveof <masterip> <masterport>修改为

slaveof 192.168.1.4 6379

然后开启从服务器的redis服务。

start redis-server start

六:进行redis主从测试

#主服务器

redis-cli -p 6379 set hello world

#从服务器

redis-cli -p 6379 get hello

"world"

#主服务器

redis-cli -p 6379 set hello world2

#从服务器

redis-cli -p 6379 get hello

"world2"

redis-cli -p 6379 set hello world

(error) READONLY You can't write against a read only slave.

成功配置主从redis服务器,由于配置中有一条从服务器是只读的,所以从服务器没法设置数据,只可以读取数据。

转载于:https://www.cnblogs.com/zhengah/p/4629757.html

Redis主从配置及通过Keepalived实现Redis自动切换高可用相关推荐

  1. redis 主从配置_应用 | Redis实现 主从,单例,集群,哨兵,配置应用

    小小经过一天的休整 公众号更新规则:每周六将会停更一次,进行短期的休整,其余时间继续每天一更. 思维导图如下 Redis 主从配置 这里配置Redis主从 什么是主从 主从复制,是指把一台Redis服 ...

  2. php redis 主从配置,Redis主从及其PHP扩展安装配置

    1.Redis简介Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序 ...

  3. Redis主从配置和集群配置

    Redis主从配置和集群配置 文章目录 Redis主从配置和集群配置 一.Redis主从配置 1.主从概念 2.主从配置 3.数据操作 二.Redis集群配置 1.简介 2.Redis 集群好处 3. ...

  4. linux redis 主从配置,redis集群(主从配置)

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合)和zset(有序集合).这些数据 ...

  5. redis主从配置完毕为啥在主服务器中检测不到从服务器

    23,redis如何实现主从复制 redis主从复制 和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Re ...

  6. Redis 主从配置密码以及哨兵

    目录: Redis 主从介绍 哨兵机制 Redis 主从配置 环境 安装 启动服务 检查主从状态 测试数据同步 默认是读写分离的 Redis Sentinel 配置 主Redis宕机测试 配置多个哨兵 ...

  7. Redis主从配置(一主两从)

    Redis主从配置(一主两从) 1.进入redis目录,打开redis的配置文件redis.conf. 2.修改redis配置文件: Vi redis.conf 在两台从服务器的尾部 添加 slave ...

  8. redis主从配置和redis哨兵配置

    主从配置 redis 主从配置master slave 优点: 防止单点故障(除了单机版,都可以) 读写分离,更好的实现多读写少 克隆两台redis虚拟机作为从机 复制操作文件 cp /usr/red ...

  9. Linux学习——redis主从配置(带密码)

    redis一主二从配置(带密码) 找了很多redis主从配置教程发现大多数都是没密码的配置,而正式服务器中,为了安全redis通常都会设置密码,正好学到这,下面分享我自己学习中对于redis主从配置的 ...

最新文章

  1. 任意多相机系统的SLAM重设计
  2. Eclipse: “Update SVN cache” hangs and locks up
  3. Linux 安装完毕要做的事
  4. 四个标志位SF,ZF,OF,CF
  5. nginx 如何显示真实ip
  6. c++11-Varadic Templates右值引用lamada
  7. 闲置服务器装win10系统,求高手帮看一下我这台闲置的老主机还能装win10或者win8.1吗?...
  8. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
  9. 2.6宽带接入技术ADSL
  10. ASP.net 2.0 自定义控件的开发之数据分页 第五章
  11. Linux三剑客grep、sed、awk
  12. mysql上机实验报告3_SQL入门随笔(上机实验报告)
  13. python rsa库_Python中rsa模块【sign 加签验签】的使用
  14. c++实现秒数转化为天数,小时,分钟,秒
  15. J2ME 访问JAR和JAD文件中的属性
  16. 20+非常棒的Photoshop卡通设计教程
  17. mac下Sed批量替换文件字符串
  18. 科学计算与Matlab笔记:第4章:Matlab绘图
  19. 除了花瓣、站酷,提高品位、汲取灵感,关注这10个国内优质设计网站
  20. 关于计算机英语演讲ppt模板,英语演讲ppt模板(英语演讲8分钟ppt模板) 最新免费版...

热门文章

  1. Mozilla Labs Apps Developer Preview发布了
  2. IE问题解决方法汇总
  3. SQLServer中Case的用法
  4. 泛在电力物联网(能源互联网+物联网)浅析
  5. Vue父组件和子组件之间传递数据
  6. VBS字符编码的说明
  7. ubuntu12.0.4不能正常关机和重启的解决方法
  8. 动态性能视图v$lock访问很慢的解决办法
  9. android平台自动化编译环境搭建一hudson安装
  10. android studio 使用CMAKE