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"
相关推荐
IT大白鼠15 小时前
Redis 系列 · 第 01 篇——认知入门:Redis 是什么
redis·nosql
彧azz15 小时前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
lbb 小魔仙17 小时前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
夕除18 小时前
redis--018
redis
两锭子19 小时前
Redis基础
redis
烟沙九洲19 小时前
Redis 缓存穿透、缓存击穿、缓存雪崩
数据库·redis
字节探索19 小时前
Redis 只会当缓存用?这 10 大实战场景,让你的系统快到飞起
redis·后端
于樱花森上飞舞20 小时前
【Redis】哨兵详解
java·开发语言·数据库·redis
Rain的Java大神之路1 天前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog1 天前
Java 接入Redis: 通用命令与键管理
java·服务器·redis