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 服务没问题,密码也没问题。问题出在应用配置或代码上。
  • 如果返回 NOAUTH 或 WRONGPASS:说明 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"
相关推荐
豆角焖肉13 分钟前
SpringBoot + Redis 缓存实战
java·spring boot·redis·后端·缓存·菜单缓存
来福猿19 分钟前
分布式锁 Redis 实现源码分析:SETNX、过期时间与可重入设计
数据库·redis·分布式
行百里er15 小时前
Redis 模块——JSON、向量搜索与时序
redis·后端
蓝胖的四次元口袋15 小时前
Redis知识梳理(1)
数据库·redis·缓存
wefg116 小时前
【Redis】C++ 自定义客户端
数据库·redis·缓存
一个有温度的技术博主19 小时前
两级缓存一致性实战:Redis + 本地缓存,如何不让数据“分裂”?
redis·spring·缓存
码途行者20 小时前
缓存一致性难题:Redis 和数据库如何做到数据一致?
数据库·redis
linweidong1 天前
Redis 集群故障排查与修复实战:从 Connection refused 到内存打满的七个现场
运维·数据库·redis·缓存·redis集群·运维面经·实施面经
用户6222884048191 天前
Redis 内存管理与过期淘汰策略:从 maxmemory 到 LRU / LFU,一篇讲透
java·redis
Sand(ContextGate)1 天前
从零搭建电商智能导购 Agent:LangGraph 编排 + 三层记忆 + 熔断降级 + 生产部署全链路实战
redis·agent·fastapi·电商·chromadb·langgraph·智能导购