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"
相关推荐
二宝哥30 分钟前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
ShiXZ2136 小时前
Redis docker-compose 部署指南
redis·docker·eureka
青山木9 小时前
Redis 缓存一致性全解:从 Cache Aside 到延迟双删、Canal+MQ 的进阶之路
java·数据库·redis·后端·缓存
YDS82910 小时前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
爬也要爬着前进1 天前
redis主从搭建
数据库·redis·缓存
用户095367515831 天前
在系统的学习 redis 前的疑惑
redis·go
吴声子夜歌1 天前
Redis 3.x——集群故障转移
java·数据库·redis·集群
明豆1 天前
Redis 分布式缓存生产实战
redis·分布式·缓存
海兰1 天前
【高速缓存】RedisVL 指南:从向量搜索到 AI 应用落地
人工智能·redis
weixin_727535621 天前
双Token认证体系深度拆解:Spring Security + JWT + Redis
redis·spring·wpf