Redis7.4.5 主备冗余+哨兵模式部署

一、 架构介绍

计划为1 主1 备(哨兵模式)的结构

  • 1 masters
  • 1 slave

1、 部署结构

服务器 角色
192.168.1.83 Master
192.168.1.85 Slave

2、环境信息

Redis版本

  • redis-7.4.5

OS 信息:

  • OS: openEuler 22.03 (LTS-SP4)

  • Kernel: Linux 5.10.0-216.0.0.115.oe2203sp4.x86_64

  • Architecture: x86-64

  • CPU/MEM: 12C64G

  • Disk: 300G

目录信息:

  • /etc/redis/ //存放主备和哨兵模式的配置文件
  • /var/lib/redis/ //存放pid和rdb文件
  • /var/log/redis/ //存放主备和哨兵日志目录
  • /usr/local/bin //存放redis编译后的程序 redis-check-rdb redis-cli redis-sentinel redis-server等

二、安装配置

1、编译安装

上传安装包到指定目录,按照自己实际的来。

  • 安装依赖
shell 复制代码
sudo yum install -y gcc make openssl-devel systemd-devel tcl
sudo yum install -y gcc-c++ libstdc++-devel 
  • 上传解压安装包
shell 复制代码
cd /opt/software/
tar -zxvf redis-7.4.5.tar.gz
  • 编译安装
shell 复制代码
cd redis-7.4.5
make BUILD_TLS=yes USE_SYSTEMD=yes CFLAGS="-O3 -march=native" -j$(nproc)
make install

2、创建相关目录

shell 复制代码
mkdir -p /var/lib/redis/
mkdir -p /var/log/redis/
mkdir -p /etc/redis/

3、配置信息

  • 主节点配置

vi redis-master.conf

shell 复制代码
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/lib/redis/redis_6379.pid
logfile "/var/log/redis_master.log"
dir /var/lib/redis
requirepass t@stp1ssw0rd
masterauth t@stp1ssw0rd
cluster-enabled no
  • 主节点哨兵配置

vi sentinel.conf

shell 复制代码
port 26379
daemonize yes
logfile "/var/log/redis_sentinel.log"
dir "/var/lib/redis"

# 监控主节点,2 表示至少 2 个哨兵同意才进行切换
sentinel monitor mymaster 192.168.1.83 6379 2
sentinel auth-pass mymaster t@stp1ssw0rd
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
protected-mode no
  • 备节点配置

vi redis-slave.conf

shell 复制代码
bind 0.0.0.0
port 6379
daemonize yes
replicaof 192.168.1.83 6379
masterauth t@stp1ssw0rd
requirepass t@stp1ssw0rd
cluster-enabled no
dir /var/lib/redis
logfile /var/log/redis_slave.log
pidfile /var/lib/redis/redis_6379.pid
requirepass t@stp1ssw0rd
  • 备节点哨兵模式配置

vi sentinel.conf

shell 复制代码
port 26379
daemonize yes
logfile "/var/log/redis_sentinel.log"
dir "/var/lib/redis"

# 监控主节点,2 表示至少 2 个哨兵同意才进行切换

sentinel monitor mymaster 192.168.1.83 6379 2
sentinel auth-pass mymaster t@stp1ssw0rd
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
protected-mode no

三、服务启停

1、主备服务启动

先后重启

shell 复制代码
redis-server /etc/redis/sentinel.conf --sentinel

2、启动端口查询

shell 复制代码
lsof -i:26379    //redis哨兵模式端口

lsof -i:6379     //redis服务端口

3、服务关闭

shell 复制代码
redis-cli -p 26379 shutdown

4、连接redis

shell 复制代码
redis-cli -h 10.45.161.85 -p 26379 -a t@stp1ssw0rd

四、故障排查

1、验证redis

shell 复制代码
redis-cli -h 192.168.1.83 -p 6379 -a t@stp1ssw0rd PING
  • 如果返回 PONG:说明 Redis 服务没问题,密码也没问题。问题出在应用配置或代码上。
  • 如果返回 NOAUTHWRONGPASS:说明 Redis 的密码和你配置的不一样,或者 Redis 没重启导致旧密码生效。

2、查看master角色信息

shell 复制代码
redis-cli -h 192.168.1.83 -p 26379 -a t@stp1ssw0rd SENTINEL masters
复制代码
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

"name"

"mymaster"

"ip"

"192.168.1.83"

"port"

"6379"

"runid"

"aecd9419301c99949f79738680e73800b8ea04dc"

"flags"

"master"

"link-pending-commands"

"0"

"link-refcount"

"1"

"last-ping-sent"

"0"

"last-ok-ping-reply"

"289"

"last-ping-reply"

"289"

"down-after-milliseconds"

"5000"

"info-refresh"

"7583"

"role-reported"

"master"

"role-reported-time"

"7588"

"config-epoch"

"0"

"num-slaves"

"1"

"num-other-sentinels"

"1"

"quorum"

"2"

"failover-timeout"

"60000"

"parallel-syncs"

"1"
相关推荐
打工的小王6 小时前
redis(四)搭建哨兵模式:一主二从三哨兵
数据库·redis·缓存
奋进的芋圆7 小时前
Spring Boot 实现三模安全登录:微信扫码 + 手机号验证码 + 邮箱验证码
spring boot·redis·微信
恒悦sunsite7 小时前
Redis之配置只读账号
java·redis·bootstrap
春生野草9 小时前
Redis
数据库·redis·缓存
编程彩机11 小时前
互联网大厂Java面试:从微服务到分布式缓存的技术场景解析
redis·spring cloud·消息队列·微服务架构·openfeign·java面试·分布式缓存
shuair12 小时前
redis实现布隆过滤器
spring boot·redis·bootstrap
万象.12 小时前
redis持久化:AOF和RDB
数据库·redis·缓存
!chen13 小时前
Redis快速实现布隆过滤器
数据库·redis·缓存
编程彩机14 小时前
互联网大厂Java面试:从分布式缓存到消息队列的技术场景解析
java·redis·面试·kafka·消息队列·微服务架构·分布式缓存