centos7搭建redis主从复制,并模拟故障切换。
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主从复制,并模拟故障切换。的更多相关文章
- 搭建Redis主从复制的集群
在主从复制模式的集群里,主节点一般是一个,从节点一般是两个或多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统能切换到从节点去读写数据,这样能提升系统的可用性.而且如果再采用主 ...
- CentOS7下搭建Redis主从复制
(1).实验环境 youxi1 192.168.1.6 Master服务器 youxi2 192.168.1.7 Slave服务器 (2).实验 1)两台服务器上yum安装Redis,启动并设置开机自 ...
- redis(一)Windows下安装redis服务、搭建redis主从复制
接下来会写一个redis实战系列,在此记录,有什么问题大家请随时批评. 好了,进入正题,这篇会将redis以windows服务形式提供服务(搭建一个简单的主从复制 M:6379:s:6380.6381 ...
- Centos7搭建redis集群及安装sentinel
准备三个节点,系统版本为CentOS7.3 11.0.8.15 master 11.0.8.16 slave01 11.0.8.17 slave02 1.安装redis # yum install - ...
- CentOS7 搭建 Redis 集群
一.手动搭建 1. 准备节点 节点数量至少为 6 个才能保证组成完整高可用的集群 (1) 目录结构 cluster ├── 9001 │ ├── data │ │ ├── appendon ...
- 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 ...
- Centos7搭建redis,同一服务器启动两个端口的redis
1.安装redis [1]下载安装包 #准备安装文件夹 mkdir /usr/local/soft/redis #进入文件夹 cd /usr/local/soft/redis #下载安装包 wget ...
- [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis
上一章 [ 搭建Redis本地服务器实践系列 ] :序言 作为开场白介绍了下为什么要写这个系列,从这个章节我们就开始真正的进入正题,开始搭建我们本地的Redis服务器.那么关于Redis的基本概念,什 ...
- Linux基于Docker的Redis主从复制、哨兵模式搭建
本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker. 1.使用docker下载redis镜像 docker pull redis 安装完成后,使用docker imag ...
随机推荐
- docker创建私有仓库及存储image
Docker官方的Docker hub尽管提供了有非常多image,也基本上包括了我们须要使用的,可是其訪问起来比較慢.假设自己要定制image.多台server之间的共享使用此image非常不方便. ...
- [javase学习笔记]-8.2 成员变量与静态变量的差别
这一节我们看一看成员变量与静态变量的差别所在. 什么是静态变量呢?我们上节用statickeyword时就提到了静态变量.也就是说用statickeyword修饰的变量就是静态变量. 我们在6.4节学 ...
- easyui datagrid自己定义操作列
通过formatter方法给Jquery easyui 的datagrid 每行添加操作链接 我们都知道Jquery的EasyUI的datagrid能够加入而且自己定义Toolbar. 这样我们选择一 ...
- 用Squid和DNSPod打造自己的CDN详细教程
本篇教程是顺应大家的要求而写.教程内大部分都是奶罩在为VeryCD等大型网站构建CDN时所累积的经验.在一些概念方面可能会有一些错漏,希望 大家指正. 本教程面对的对象是个人站长,所以各方面会力求傻瓜 ...
- Centos6.0使用第三方YUM源(EPEL,RPMForge,RPMFusion)
yum是centos下很方便的rpm包管理工具,配置第三方软件库使你的软件库更加丰富.以下简单的讲下配置的步骤. 首先,需要安装yum-priorities插件: yum install yum-pr ...
- IPv4(三)地址掩码
回顾网络类型确定 回顾一下之前学过的如果确定IP地址网络号,这里先不考虑子网. 首先通过首个八位组字节规则很容易确定IP地址属于那个网络: 如果第1位是0,则是A类地址: 如果前两位是10,则是B类地 ...
- 16 redis之sentinel运维监控
一:sentinel运维监控 Sentinel不断与master通信,获取master的slave信息. 监听master与slave的状态 如果某slave失效,直接通知master去除该slave ...
- 【Atheros】如何禁用载波侦听CSMA和BACKOFF
无线网络上发包之前都要进行载波侦听,如果未收到ACK,就指数级退避之后重传. 有时候我们为了观察网卡在全力发送数据包时的性能,要禁用CSMA和ACK,这一篇文章先来讨论怎么禁用CSMA,这里提供两种思 ...
- Log4j2升级jar包冲突问题
升级Log4j2后日志提示jar包冲突: SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar ...
- MySQL 事务1
本人应用的MySQL的版本为:5.6.22