当前位置: 首页 > article >正文

OpenEuler学习笔记(十七):OpenEuler搭建Redis高可用生产环境

在这里插入图片描述

在OpenEuler上搭建Redis高可用生产环境,通常可以采用Redis Sentinel或Redis Cluster两种方式,以下分别介绍两种方式的搭建步骤:

基于Redis Sentinel的高可用环境搭建

  1. 安装Redis
    • 配置软件源:可以使用OpenEuler的默认软件源,确保源配置正确并可访问。
    • 安装Redis:使用包管理工具进行安装,在OpenEuler上一般可以使用以下命令安装:
sudo dnf install redis
  1. 配置主从节点
    • 编辑主节点配置文件:主节点的配置文件通常为/etc/redis.conf,打开该文件,进行如下配置:
bind 0.0.0.0
port 6379
daemonize yes
logfile "/var/log/redis/redis.log"
dir /var/lib/redis
- **启动主节点**:执行以下命令启动主节点:
sudo systemctl start redis
- **配置从节点**:复制主节点的配置文件到从节点,并修改配置文件中的`slaveof`参数,指定主节点的IP和端口,例如:
slaveof <主节点IP> 6379
- **启动从节点**:在从节点上执行启动命令:
sudo systemctl start redis
  1. 配置Sentinel
    • 编辑Sentinel配置文件:创建Sentinel配置文件,例如sentinel.conf,内容如下:
port 26379
daemonize yes
logfile "/var/log/redis/sentinel.log"
sentinel monitor mymaster <主节点IP> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
- **启动Sentinel**:执行以下命令启动Sentinel:
redis-sentinel sentinel.conf
  1. 验证高可用
    • 检查Sentinel状态:可以使用redis-cli工具连接到Sentinel,执行SENTINEL masters命令查看主节点和从节点的状态。
    • 模拟主节点故障:在主节点上停止Redis服务,观察Sentinel是否能自动将从节点提升为主节点,并在原主节点恢复后将其设置为从节点。

基于Redis Cluster的高可用环境搭建

  1. 安装Redis:同Redis Sentinel方式中的安装步骤。
  2. 创建集群节点配置文件
    • 在每个节点上创建一个独立的配置文件,例如redis-node1.confredis-node2.conf等,以下是一个配置文件的示例:
bind 0.0.0.0
port 6379
daemonize yes
logfile "/var/log/redis/redis-node1.log"
dir /var/lib/redis
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
  1. 启动集群节点
    • 分别在每个节点上执行以下命令启动Redis节点:
redis-server redis-node1.conf
redis-server redis-node2.conf
...
  1. 创建集群
    • 使用redis-cli工具创建集群,执行以下命令:
redis-cli --cluster create <节点1IP>:6379 <节点2IP>:6379 <节点3IP>:6379 <节点4IP>:6379 <节点5IP>:6379 <节点6IP>:6379 --cluster-replicas 1
- 上述命令中,`--cluster-replicas 1`表示为每个主节点创建一个从节点。
  1. 验证集群
    • 使用redis-cli工具连接到集群中的任意一个节点,执行CLUSTER INFO命令查看集群的信息,包括节点数量、主从关系等。
    • 可以通过向集群中写入和读取数据,然后模拟节点故障,观察数据是否能够在其他节点上正常读写,以及集群是否能够自动进行故障转移和数据重新分布。

http://www.kler.cn/a/526134.html

相关文章:

  • V103开发笔记1-20250113
  • 类文件结构
  • Baklib如何提升企业知识管理效率与市场竞争力的五大对比分析
  • FFmpeg rtmp推流直播
  • 道氏理论简介
  • Baklib深入解析企业内容管理与内容中台的本质差异
  • P1044 [NOIP2003 普及组] 栈 C语言
  • Autogen_core: ClosureAgent使用与测试
  • selenium定位网页元素
  • 如何使用深度学习中的 Transformer 算法进行视频目标检测
  • C基础寒假练习(4)
  • 【Rust自学】17.3. 实现面向对象的设计模式
  • MSU:通过图结构增强LLM推理
  • Vue3的el-table-column下拉输入实时查询API数据选择的实现方法
  • 力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)
  • Windows程序设计8:获取文件大小的两种方式
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)
  • Oracle Primavera P6 最新版 v24.12 更新 2/2
  • 数据结构 前缀中缀后缀
  • 毕业设计--具有车流量检测功能的智能交通灯设计