Cntos7搭建redis主从复制,并模拟故障主从切换

主从复制搭建

主机:192.168.161.179

从机:192.168.161.180

1、        安装主redis

自己本地环境,关闭防火墙。

#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#setenforce 0

#systemctl stop firewalld

#systemctl disable firewalld

安装相关依赖

yum install –y gcc gcc-c++ make

下载redis4.0.2包

http://download.redis.io/releases/redis-4.0.2.tar.gz

下载好后上传至服务器,进行解压(我上传至opt目录)

解压后编译安装

cd redis-4.0.2/

make PREFIX=/usr/local/redis install

将redis-4.0.2目录的redis.conf sentinel.conf配置文件复制到安装目录/usr/local/redis

将redis-4.0.2/src目录的redis-cli redis-sentinel redis-server复制到安装目录 /usr/local/redis/

修改配置

Cd /usr/local/redis

Vim redis.conf

修改内容如下:

将bind 127.0.0.1这一行注释掉

将protected-mode yes改为protected-mode no

将daemonize no改为daemonize yes

将logfile ""改为logfile"/usr/local/redis/log/redis.log"

添加密码

Vim sentinel.conf

将sentinel monitor mymaster 127.0.0.1 6379 2改为sentinel monitor mymaster 192.168.161.179 6379 2

添加一下几行

daemonize yes

protected-mode no

logfile "/usr/local/redis/log/sentinel.log"

2、配置redis从

安装的方法及路径与redis1主一样

复制redis配置文件

cp redis.conf sentinel.conf /usr/local/redis/

cp redis-cli redis-sentinel redis-server /usr/local/redis/

cd /usr/local/redis/

vim redis.conf

修改内容如下:

将bind 127.0.0.1注释掉

将protected-mode yes改为protected-mode no

将daemonize no改为daemonize yes

将logfile ""改为logfile " /usr/local/redis/log/redis.log "

添加一行slaveof   192.168.161.179        6379   (主服务器ip)

配置密码

修改sentinel.conf

修改内容如下:

192.168.161,179是主服务器ip,这里是写主服务器的ip。

sentinel monitor mymaster 192.168.161.179 6379 2

daemonize yes

protected-mode no

logfile "/usr/local/redis/log/sentinel.log"

3、启动主机

启动主redis

./redis-cli -p 6379 -a 123456

启动从redis

./redis-cli -p 6379 -a 1234567

4、测试是否可以主从复制

主机上设置一个键值对

#set a 1

在从主机测试是否同步

#get a

从主机测试

#set b 2  (报错因为从机是只读,OK主从已经搭建ok)

日常的启动关闭主从的命令如下。

主从复制搭建成功。

模拟故障切换,将slave切换为主

5、测试主从切换,当主(master)出现故障时将从(slave)切换成主。

模拟主挂了,关闭主

Ps –ef | grep redis

./redis-cli -p 6379 -a 123456 shutdown

在从设备上关闭复制功能,并将从服务器变为主服务器,原来所得的数据集不会被丢弃。

./redis-cli -p 6379 -a 1234567 slaveof NO ONE

登陆:./redis-cli -p 6379 -a 1234567

查看是否变为主:info

从已经变回master,也可以写入数据

出现故障时将slave(从)切换为主ok。

6、测试原来的主redis恢复正常了,恢复回去。

先将现在的主redis数据进行保存

在将现在主redis根目录下的dump.rdb,文件拷贝到原来主redis的根目录,进行数据覆盖。

(我是远程拷贝过去的)

scp -P 22 dump.rdb root@192.168.161.179:/usr/local/redis/

启动原来的主。

在现在这个主在执行最后一步操作,就是将原来的主恢复,将现在这个主还是切换为从。

./redis-cli -p 6379 -a 1234567 slaveof 192.168. 161.179 6379

指定主服务器。

我们可以看看是否恢复原来的主,登陆原来的主查看。

登陆redis成功输入:info

已经恢复到原始环境。

centos7搭建redis主从复制,并模拟故障切换。的更多相关文章

  1. 搭建Redis主从复制的集群

    在主从复制模式的集群里,主节点一般是一个,从节点一般是两个或多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统能切换到从节点去读写数据,这样能提升系统的可用性.而且如果再采用主 ...

  2. CentOS7下搭建Redis主从复制

    (1).实验环境 youxi1 192.168.1.6 Master服务器 youxi2 192.168.1.7 Slave服务器 (2).实验 1)两台服务器上yum安装Redis,启动并设置开机自 ...

  3. redis(一)Windows下安装redis服务、搭建redis主从复制

    接下来会写一个redis实战系列,在此记录,有什么问题大家请随时批评. 好了,进入正题,这篇会将redis以windows服务形式提供服务(搭建一个简单的主从复制 M:6379:s:6380.6381 ...

  4. Centos7搭建redis集群及安装sentinel

    准备三个节点,系统版本为CentOS7.3 11.0.8.15 master 11.0.8.16 slave01 11.0.8.17 slave02 1.安装redis # yum install - ...

  5. CentOS7 搭建 Redis 集群

    一.手动搭建 1. 准备节点 节点数量至少为 6 个才能保证组成完整高可用的集群 (1) 目录结构 cluster ├── 9001 │   ├── data │   │   ├── appendon ...

  6. CentOS7配置redis主从复制

    规划 ip port role 192.168.1.31 6379 master 192.168.1.32 6379 slave 192.168.1.33 6379 slave 0.关闭防火墙 sys ...

  7. Centos7搭建redis,同一服务器启动两个端口的redis

    1.安装redis [1]下载安装包 #准备安装文件夹 mkdir /usr/local/soft/redis #进入文件夹 cd /usr/local/soft/redis #下载安装包 wget ...

  8. [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis

    上一章 [ 搭建Redis本地服务器实践系列 ] :序言 作为开场白介绍了下为什么要写这个系列,从这个章节我们就开始真正的进入正题,开始搭建我们本地的Redis服务器.那么关于Redis的基本概念,什 ...

  9. Linux基于Docker的Redis主从复制、哨兵模式搭建

    本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker. 1.使用docker下载redis镜像 docker pull redis 安装完成后,使用docker imag ...

随机推荐

  1. C/C++中作用域详解(转)

    作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域).变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号.也就是说,作用域由变量所在的 ...

  2. dom控制

    (1)创建新节点 createDocumentFragment()    //创建一个DOM片段 createElement_x_x()   //创建一个具体的元素 createTextNode()  ...

  3. Linux在中国正在走向没落

    在中国,Linux正在走向没落,一片萧条景象. 在这样的大背景下.居然有人愿意接手中科红旗,令人佩服! 在中国,没有一个关于国际Linux的官方刊物(或站点)反映国际Linux运动的真实声音.Linu ...

  4. 深入了解Struts1的执行机理

    要说Struts1的工作流程.就必需要说一下Model1和Model2了.由于这个框架是踏着他们的尸骨一步一步的发展起来的. Model1开发模式,想想我们刚刚開始接触Java的时候,我们用的就是这样 ...

  5. HDU 2112 HDU Today(STL MAP + Djistra)

    题目链接:HDU Today 立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map 题目非常水,可是错了N遍.手贱了.本题不优点理的就是把地名转化为数字 #include <i ...

  6. python学习(十一)函数、作用域、参数

    定义和调用函数 在这里函数的定义和调用和一般的语句没什么不一样,感觉函数也是对象 #!/usr/bin/python def times(x, y):                # 定义函数    ...

  7. JavaWeb学习总结第三篇--走进JSP页面元素

    JavaWeb学习(三)—走进JSP页面元素 JSP:Java Server Pages,译为Java服务器页面.其脚本采用Java语言,继承了Java所有优点.JSP元素可以分为指令元素.脚本元素和 ...

  8. mybatis--foreach,choose 小结

    写博客个人不喜欢写那种长篇大论.富有文採与哲学的文章,搞开发的就喜欢直击重点,仅仅记录重要的信息就好了,以后查看的时候也很方便! mybatis 中 在if语句或when中 假设推断一个字段是否和1同 ...

  9. WPF中的ListBox实现按块显示元素的方法

    本文实例讲述了WPF中的ListBox实现按块显示元素的方法.分享给大家供大家参考,具体如下: 注意:需要设置ListBox的属性 ScrollViewer.HorizontalScrollBarVi ...

  10. Linux的经常使用命令(1) - 指定执行级别

    命令:init [0123456] 执行级别 0:关机 1:单用户 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重新启动 经常使用执行级别是3 ...