搭建一主二从的Redis哨兵模式集群

0 阅读1分钟

Redis 的哨兵(Sentinel)模式是一种高可用解决方案,用于监控Redis实例,并在主节点发生故障时自动进行故障转移。下面是一个简化的步骤来搭建一主二从的Redis哨兵模式集群。

准备工作

  1. 安装 Redis:确保你的服务器上已经安装了Redis。如果没有,可以通过包管理器或源代码编译安装。
  2. 配置文件:为每个Redis实例准备单独的配置文件。
  3. 网络设置:确保所有Redis实例和哨兵之间可以相互通信。

配置 Redis 实例

主节点 (master)

创建一个名为 redis-master.conf 的配置文件,并设置如下参数:

port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/var/log/redis/redis_6379.log"
dir /var/lib/redis/6379

启动主节点:

redis-server /path/to/redis-master.conf
从节点 (slaves)

为两个从节点分别创建配置文件 redis-slave-1.confredis-slave-2.conf,并添加以下内容:

port 6380 # 对于第一个从节点
slaveof <master-ip> 6379
daemonize yes
pidfile /var/run/redis_6380.pid
logfile "/var/log/redis/redis_6380.log"
dir /var/lib/redis/6380

port 6381 # 对于第二个从节点
slaveof <master-ip> 6379
daemonize yes
pidfile /var/run/redis_6381.pid
logfile "/var/log/redis/redis_6381.log"
dir /var/lib/redis/6381

<master-ip> 替换为主节点的实际IP地址。然后分别启动两个从节点:

redis-server /path/to/redis-slave-1.conf
redis-server /path/to/redis-slave-2.conf

配置哨兵 (Sentinels)

哨兵也需要自己的配置文件。至少需要三个哨兵实例来避免脑裂问题。为每个哨兵创建配置文件如 sentinel-1.conf, sentinel-2.confsentinel-3.conf

每个哨兵配置文件中包含类似如下设置:

port 26379 # 第一个哨兵端口
sentinel monitor mymaster <master-ip> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
daemonize yes
pidfile /var/run/sentinel-26379.pid
logfile "/var/log/redis/sentinel-26379.log"
dir /tmp

对其他哨兵做相应修改,比如端口号分别为 26380 和 26381。

启动哨兵服务:

redis-sentinel /path/to/sentinel-1.conf
redis-sentinel /path/to/sentinel-2.conf
redis-sentinel /path/to/sentinel-3.conf

这样你就设置了一个基本的一主两从的Redis哨兵模式。当主节点失败时,哨兵会自动选择一个从节点作为新的主节点,并更新其他从节点指向新主节点。