redis一主二从三哨兵搭建流程

redis一主二从三哨兵与集群的区别

redis一主多从三哨兵:主要是为了ha,即数据多备份,当master宕机后自动切换
redis集群:主要是为了扩充磁盘,增加并发

具体搭建流程如下

注意:本教程基于centos7.8 + redis6.2.5

1.上传压缩包到服务器(我是一主二从共三台,所以上传到三台服务器)

2. 检测服务器是否安装有gcc环境,redis需要gcc环境才能编译

gcc -version 

3. 安装gcc环境

yum -y install gcc

4. 进入redis根目录下进行编译

cd cd redis-6.2.5/
#编译
make
#安装
make install

5.修改配置文件

1)修改master节点的redis配置文件

#注释掉bind
#bind 127.0.0.1 -::1
#关闭redis保护模式
protected-mode no
#修改redis的端口(改不改看自己的需求)
port 56379
#链接超时时间
timeout 300
#开启redis后台运行
daemonize yes
#指定pid文件,需要修改run目录增加写权限
pidfile "/var/run/redis_56379.pid"
#指定log文件的位置
logfile "/var/log/redis/redis_56379.log"
#指定工作目录
dir "/redis/data"
#指定slave只读
replica-read-only yes

2)修改redis两台slave节点

#slave节点的其他配置都跟主节点是一样的,需要注意的是在slave的配置文件中新增一行,用来指定master
#指定master的ip,端口信息
replicaof 192.168.20.162 56379

6.一主二从到此搭建完毕,可以启动集群测试是否成功

src/redis-server redis56379.conf
src/redis-server redis56379.conf
src/redis-server redis56379.conf

7.查看当前节点的运行信息有两种方式

#1.进入redis cli 查看 -p 是端口号,是redis53679.conf中的port
src/redis-cli -p 56379
#2.不用进入redis cli直接查看
src/redis-cli -h 192.168.20.162 -p 56379 -a redis info replication
#因为我已经测试过哨兵,把主节点停掉而后重启了,所以以前的主节点为slave
输出日志:
# Replication
role:slave
master_host:192.168.20.164
master_port:56379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:635190
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:7fd74cb24cbdfddb6003d609102c261dddb474fd
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:635190
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:48490
repl_backlog_histlen:586701

8.配置哨兵模式

vim sentinel.conf
#关闭保护模式
protected-mode no
#开启后台启动
daemonize yes
#指定哨兵的pid
pidfile "/var/run/redis-sentinel.pid"
#指定哨兵的日志文件位置
logfile "/var/log/redis/sentinel.log"
#指定哨兵的工作目录
dir "/redis/sentinel/data"
#最为关键的一个配置:指定主节点的位置
sentinel monitor mymaster 192.168.20.162 56379 2

9.启动哨兵

#两种启动方式,这两种没有什么区别:
#1.
src/redis-sentinel sentinel.conf
#2.
src/redis-server sentinel.conf --sentinel
#查看redis及哨兵的运行情况
ps -ef|grep redis

插下一步忽而翻译

10. 测试哨兵是否生效

#杀掉当前的master进程,观察哨兵是否会重新选举新的master
kill -9 15146
#redis默认配置30s判定master死亡,30s查看任意存活的节点即可找到当前的master
src/redis-cli -h 192.168.20.163 -p 56379 -a redis info replication
日志如下:
# Replication
role:slave
master_host:192.168.20.164
master_port:56379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:827942
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:7fd74cb24cbdfddb6003d609102c261dddb474fd
master_replid2:955dd9790cada1ce862235ec1551e3c5b68a1f5d
master_repl_offset:827942
second_repl_offset:34962
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:827942

可以看出当前master已经自动切换为192.168.20.164

需要注意的是:

  1. 如果redis的保护模式没有关闭,哨兵没办法与redis通信,导致哨兵在不断切换master
  2. masterauth作用:主要是针对master对应的slave节点设置的,在slave节点数据同步的时候用到。
    requirepass作用:对登录权限做限制,redis每个节点的requirepass可以是独立、不同的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值