redis 集群模式搭建
Redis 集群模式是一种通过将 Redis 实例分片到多个服务器上,从而提高可扩展性和可用性的机制。以下是搭建 Redis 集群模式的步骤:
1. 创建 Redis 实例
- 创建至少 6 个 Redis 实例,建议使用奇数个实例以避免脑裂问题。
- 将实例命名为 redis-node-1、redis-node-2 等。
- 配置每个实例的端口不同,例如:6379、6380、6381 等。
2. 配置 sentinel 实例
- 创建 3 个 sentinel 实例,负责监控 Redis 实例并进行故障转移。
- 将 sentinel 实例命名为 sentinel-node-1、sentinel-node-2、sentinel-node-3。
- 配置 sentinel 实例的端口不同,例如:26379、26380、26381 等。
3. 配置 sentinel 配置文件
- 为每个 sentinel 实例创建一个配置文件,例如:sentinel-node-1.conf。
- 在配置文件中,添加以下配置:
<code>sentinel monitor <master-name> <master-ip> <master-port> <quorum> sentinel down-after-milliseconds <master-name> <milliseconds> sentinel failover-timeout <master-name> <milliseconds></code>
-
其中:
-
<master-name>是 master Redis 实例的名称。 -
<master-ip>是 master Redis 实例的 IP 地址。 -
<master-port>是 master Redis 实例的端口。 -
<quorum>是将选票授予新选主所需的 sentinel 实例数量,推荐值为 (sentinel 实例数 / 2) + 1。 -
<milliseconds>是在指定时间内未收到 master 回复后,将 master 标记为宕机的毫秒数。 -
<failover-timeout>是在开始故障转移之前等待 master 重新连接的毫秒数。
-
4. 配置 Redis 实例
- 在每个 Redis 实例的配置文件中,添加以下配置:
<code>cluster-enabled yes cluster-config-file nodes.conf</code>
-
其中:
-
cluster-enabled启用集群模式。 -
cluster-config-file指定包含集群信息的文件路径。
-
5. 创建 nodes.conf 文件
- 创建一个名为
nodes.conf的文件,并将其放置在每个 Redis 实例的配置文件目录中。 - 在文件中,添加以下信息:
<code><node-id> <host> <port> <node-id> <host> <port> ...</code>
-
其中:
-
<node-id>是 Redis 实例的唯一标识符,格式为 “<IP 地址>:<端口>” 或 “<节点名称>”。 -
<host>是 Redis 实例的 IP 地址或主机名。 -
<port>是 Redis 实例的端口。
-
6. 启动集群
- 启动所有 Redis 实例和 sentinel 实例。
- 在任意一个 Redis 实例上,执行以下命令:
<code>redis-cli --cluster create <nodes.conf path> <replicas></code>
-
其中:
-
<nodes.conf path>是nodes.conf文件的路径。 -
<replicas>指定每个 master 复制品的数量。
-
7. 验证集群
- 登录集群中任意一个 Redis 实例,执行
CLUSTER INFO命令。 - 检查
cluster_state字段是否为ok,表明集群已成功建立。
8. 使用集群
- 可以像使用单个 Redis 实例一样使用集群。
- 通过
cluster-keyslot命令获取键应位于的插槽,然后将命令发送到该插槽对应的 Redis 实例。










