博客
关于我
Redis 配置高可用和搭建集群
阅读量:800 次
发布时间:2023-03-06

本文共 1710 字,大约阅读时间需要 5 分钟。

Redis 高可用性配置与集群搭建指南

一、高可用性配置

高可用性(High Availability,HA)是指系统无中断地执行其功能的能力。Redis通过哨兵(Sentinel)和主从复制实现高可用性。以下是实现高可用性的关键组件和配置方法。

1. 哨兵(Sentinel)功能

哨兵是Redis集群中核心组件,负责监控主从节点的状态,自动发现故障并执行故障转移。其主要功能包括:

  • 监控: 定期向主从节点发送 PING 请求,监控节点状态。
  • 故障通知: 发现主从节点故障后,向管理员发送警报。
  • 故障转移: 当主节点故障时,自动将从节点提升为新主节点。
  • 配置更新: 通知客户端新的主节点信息,并更新相关配置。

2. 哨兵配置文件(sentinel.conf)

哨兵配置文件中常见的重要配置项包括:

  • 端口: sentinel服务运行的端口,默认为 26379。
  • 日志记录: 指定哨兵的日志文件路径。
  • 主节点监控: 配置需要监控的主节点信息,包括 IP、端口和 quorum 值。
  • 故障时间: 设置主节点故障后哨兵等待的超时时间,默认为 30 秒。
  • 故障转移超时: 设置故障转移操作的超时时间,默认为 180000 毫秒(3 分钟)。
  • 并行同步限制: 设置从节点同时进行同步的最大数量,默认为 1。

3. 主从复制配置

在 Redis.conf 文件中,配置主从复制:

  • 主从关系: 在主节点配置 replicaof mymaster 或从节点配置 slaveof mymaster
  • 持久化: 确保启用持久化功能(appendonly yes),并指定日志文件路径。
  • bind: 不要将 Redis.bind 指向 127.0.0.1,应使用实际 IP 地址。

4. 启动哨兵和主从服务

在所有哨兵和主从节点上执行以下命令:

./bin/redis-sentinel ./sentinel.conf
./bin/redis-server ./redis.conf

二、Redis 集群搭建

1. 集群简介

Redis 集群采用 P2P 模式,通过 PING-PONG 机制实现节点间通信。集群中的每个节点都是 Redis 实例,通过投票容错机制判断节点状态。

2. 集群配置

在 Redis.conf 文件中,开启集群功能并配置相关参数:

  • 集群启用: cluster-enabled yes
  • 配置文件: 指定集群配置文件路径,默认为 nodes-6379.conf
  • 节点超时: cluster-node-timeout 10000,默认为 10 秒。
  • 从节点数量: cluster-migration-barrier 1,默认为 1。
  • 覆盖率要求: cluster-require-full-coverage yes,确保所有槽分配完成后才提供服务。

3. 集群环境要求

  • 至少 3 台服务器(满足投票容错)。
  • 每个节点需有从节点备份,建议至少 6 台服务器。

4. 集群创建

使用 Redis CLI 创建集群:

./bin/redis-cli -a 123456 --cluster create 192.168.198.5:6379 \
192.168.198.10:6379 192.168.198.11:6379 192.168.198.12:6379 192.168.198.13:6379 192.168.198.14:6379 \
--cluster-replicas 1

5. 客户端连接

客户端连接集群时,使用 -c 选项启用客户端重定向:

./bin/redis-cli -c -h 192.168.198.5 -p 6379

6. 集群操作

  • 删除节点: 使用 cluster del-node 命令,确保槽迁移完成后删除节点。
  • 故障转移: 使用 cluster failover 命令在从节点上手动触发故障转移。
  • 添加节点: 使用 cluster add-node 命令添加新节点,并重新平衡槽分布。

通过以上配置和操作,Redis 集群可以实现高可用性和数据冗余,确保服务稳定性和可靠性。

转载地址:http://cqafk.baihongyu.com/

你可能感兴趣的文章