redis-3.2.8主从复制架构搭建及哨兵配置

1.前置准备:

Linux版redis-3.2.8单机环境安装
如果对redis的安装配置不是很了解,看一下我的上期教程,对完成此期教程很有帮助
②三台Linux虚拟机

2.主从简介

①主从规划
hadoop01:主
hadoop02:从
hadoop03:从

②职责:

  • 主节点
    写数据
    将变化的数据同步到从节点
    读数据(可忽略)
  • 从节点
    读数据
    禁止写数据

③作用:读写分离,负载均衡,故障恢复

3.三台机器分别执行以下命令

以hadoop01为例,三台机器分别执行以下命令:

[xiaokang@hadoop01 software]$ tar -zxvf redis-3.2.8.tar.gz
[xiaokang@hadoop01 ~]$ sudo yum -y install gcc-c++
[xiaokang@hadoop01 ~]$ sudo yum -y install tcl
[xiaokang@hadoop01 ~]$ cd /opt/software/redis-3.2.8/
[xiaokang@hadoop01 redis-3.2.8]$ make MALLOC=libc
[xiaokang@hadoop01 redis-3.2.8]$ make install PREFIX=/opt/software/redis-3.2.8
[xiaokang@hadoop01 redis-3.2.8]$ mkdir -p /opt/software/redis-3.2.8/log
[xiaokang@hadoop01 redis-3.2.8]$ mkdir -p /opt/software/redis-3.2.8/data

4.修改配置文件

hadoop01机器上:

[xiaokang@hadoop01 redis-3.2.8]$ vim redis.conf 
#第61行,将bind后面的地址改为你的主机地址,我的虚拟机ip已经配置了映射,可以直接填写主机名
bind hadoop01

#第128行,开启守护进程,就是说它会一直在的后台默默地运行
daemonize yes

#第163行,日志文件的配置
logfile "/opt/software/redis-3.2.8/log/redis.log"

#第247行,数据文件的配置
dir /opt/software/redis-3.2.8/data

hadoop02机器上:

[xiaokang@hadoop02 redis-3.2.8]$ vim redis.conf 
#第61行,将bind后面的地址改为你的主机地址,我的虚拟机ip已经配置了映射,可以直接填写主机名
bind hadoop02

#第128行,开启守护进程,就是说它会一直在的后台默默地运行
daemonize yes

#第163行,日志文件的配置
logfile "/opt/software/redis-3.2.8/log/redis.log"

#第247行,数据文件的配置
dir /opt/software/redis-3.2.8/data

# 修改第265行,配置hadoop02为第一台服务器的slave节点
slaveof hadoop01 6379

hadoop03机器上:

[xiaokang@hadoop03 redis-3.2.8]$ vim redis.conf 
#第61行,将bind后面的地址改为你的主机地址,我的虚拟机ip已经配置了映射,可以直接填写主机名
bind hadoop03

#第128行,开启守护进程,就是说它会一直在的后台默默地运行
daemonize yes

#第163行,日志文件的配置
logfile "/opt/software/redis-3.2.8/log/redis.log"

#第247行,数据文件的配置
dir /opt/software/redis-3.2.8/data

# 修改第265行,配置hadoop03为第一台服务器的slave节点
slaveof hadoop01 6379

5.Redis服务启动

[xiaokang@hadoop01 redis-3.2.8]$ bin/redis-server redis.conf 
[xiaokang@hadoop02 redis-3.2.8]$ bin/redis-server redis.conf 
[xiaokang@hadoop03 redis-3.2.8]$ bin/redis-server redis.conf 
[xiaokang@hadoop01 redis-3.2.8]$ bin/redis-cli -h hadoop01 -p 6379
[xiaokang@hadoop02 redis-3.2.8]$ bin/redis-cli -h hadoop02 -p 6379
[xiaokang@hadoop03 redis-3.2.8]$ bin/redis-cli -h hadoop03 -p 6379

6.测试主从复制

在hadoop01上设置两个kv,查看另外两台机器上是否复制了这两个kv。

hadoop01:6379> keys *
(empty list or set)
hadoop01:6379> set k1 v1
OK
hadoop01:6379> set k2 v2
OK
hadoop01:6379> keys *
1) "k2"
2) "k1"
hadoop02:6379> keys *
1) "k2"
2) "k1"
hadoop03:6379> keys *
1) "k2"
2) "k1"
# 实现了主从复制

7.哨兵简介

哨兵的作用:

-监控:检查master和slave是否正常
-通知:当被监控的服务器出现问题时,向其他哨兵,客户端发送通知
-故障转移:当master出现故障时,断开master与slave的连接,选取一个slave作为master,将其他的slave连接到新的master,并告知客户端新的服务器地址

8.哨兵配置

[xiaokang@hadoop01 redis-3.2.8]$ vim sentinel.conf
# 修改第15行, bind配置,每台机器修改为自己对应的主机名
bind hadoop01 
# 在下方添加配置,让sentinel服务后台运行
daemonize yes
# 修改第71行,三台机器监控的主节点,现在主节点是hadoop01服务器
sentinel monitor mymaster hadoop01 6379 2

#远程分发
[xiaokang@hadoop01 redis-3.2.8]$ scp -r sentinel.conf xiaokang@hadoop02:/opt/software/redis-3.2.8
[xiaokang@hadoop01 redis-3.2.8]$ scp -r sentinel.conf xiaokang@hadoop03:/opt/software/redis-3.2.8

#修改配置
[xiaokang@hadoop02 redis-3.2.8]$ vim sentinel.conf
bind hadoop02
[xiaokang@hadoop03 redis-3.2.8]$ vim sentinel.conf
bind hadoop03

9.启动哨兵服务

# 三台机器分别执行以下命令:
[xiaokang@hadoop01 redis-3.2.8]$ bin/redis-sentinel sentinel.conf
[xiaokang@hadoop01 redis-3.2.8]$ ps -ef | grep redis

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.测试哨兵服务

[xiaokang@hadoop01 redis-3.2.8]$ bin/redis-cli -h hadoop01 -p 26379
# 使用ping命令检查哨兵是否工作,如果正常会返回PONG
hadoop01:26379> ping
PONG
hadoop01:26379> info
# 最后一行
master0:name=mymaster,status=ok,address=192.168.50.151:6379,slaves=2,sentinels=3

在这里插入图片描述

在hadoop01上杀死redis服务进程,就会在hadoop02与hadoop03服务器中选择一台服务器来切换为主节点

[xiaokang@hadoop01 redis-3.2.8]$ ps -ef | grep redis
xiaokang  10047      1  0 22:05 ?        00:00:00 bin/redis-server hadoop01:6379
xiaokang  10052      1  0 22:05 ?        00:00:00 bin/redis-sentinel hadoop01:26379 [sentinel]
xiaokang  10067   9408  0 22:11 pts/0    00:00:00 grep --color=auto redis
[xiaokang@hadoop01 redis-3.2.8]$ kill -9 10047
[xiaokang@hadoop01 redis-3.2.8]$ ps -ef | grep redis
xiaokang  10052      1  0 22:05 ?        00:00:01 bin/redis-sentinel hadoop01:26379 [sentinel]
xiaokang  10069   9408  0 22:12 pts/0    00:00:00 grep --color=auto redis
[xiaokang@hadoop02 redis-3.2.8]$ bin/redis-cli -h hadoop02 -p 26379
hadoop02:26379> info
# 最后一行
master0:name=mymaster,status=ok,address=192.168.50.152:6379,slaves=2,sentinels=3

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘新鲜事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值