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"
相关推荐
BullSmall7 小时前
Redis 双机部署 完整方案(两种架构,适配两台机器)
java·redis·架构
M--Y10 小时前
Redis集群和典型应用场景
redis·算法·哈希算法·集群
Magic@10 小时前
Redis学习[1] ——基本概念和数据类型
linux·开发语言·数据库·c++·redis·学习
_Evan_Yao10 小时前
缓存金字塔上的红色闪电:Redis 如何借力 CPU 的 L1/L2/L3 与 TLB 飞驰
java·数据库·redis·后端·缓存
難釋懷11 小时前
Redis数据结构-Dict
数据结构·数据库·redis
弹简特12 小时前
【Redis】01-认识Redis+分布式系统知识背景介绍
数据库·redis·缓存
他们叫我阿冠12 小时前
SpringAI的基础学习
数据库·redis·缓存
2301_7926748613 小时前
java学习day31(redis)
java·redis·学习
weisian15115 小时前
Java并发编程--46-热点Key与大Value:Redis集群中的“定时炸弹”
java·redis·热key·大key
赵优秀一一15 小时前
Redis 基础、缓存、String/Hash
redis·缓存·哈希算法