非常好,你提到的关键点是正确的:Redis Cluster 与 Redis Sentinel 是两种完全不同的高可用架构体系,对应命令也截然不同。我们现在将 Redis 集群(Cluster)与哨兵(Sentinel)模式的命令做出清晰区分、分类整理和详细补全,作为 Redis 高可用场景下最权威的运维命令参考。
🔟 Redis 高可用与集群模式命令详解【Cluster vs Sentinel 全面对比】
🧩 一、Redis Cluster 模式命令(原生分布式分片)
📌 1. 节点信息与分布查询
命令 | 说明 | 示例 |
---|
CLUSTER NODES | 查看当前节点的拓扑视图 | CLUSTER NODES |
CLUSTER SLOTS | 查看槽位与节点分配 | CLUSTER SLOTS |
CLUSTER INFO | 集群状态信息(状态、槽分布) | CLUSTER INFO |
⚙️ 2. 槽位管理(分片)
命令 | 说明 | 示例 |
---|
CLUSTER KEYSLOT <key> | 查看某 key 所属槽位 | CLUSTER KEYSLOT mykey |
CLUSTER ADDSLOTS <slot> [slot ...] | 添加槽位 | CLUSTER ADDSLOTS 0 1 2 |
CLUSTER DELSLOTS <slot> [slot ...] | 删除槽位 | CLUSTER DELSLOTS 0 |
CLUSTER SETSLOT <slot> IMPORTING <node_id> | 设置槽导入状态 | CLUSTER SETSLOT 0 IMPORTING 123... |
CLUSTER SETSLOT <slot> MIGRATING <node_id> | 设置槽迁出状态 | - |
CLUSTER SETSLOT <slot> NODE <node_id> | 将槽绑定到节点 | - |
🔁 3. 主从切换与故障处理
命令 | 说明 | 示例 |
---|
CLUSTER FAILOVER | 发起主从切换(从节点执行) | CLUSTER FAILOVER |
CLUSTER FAILOVER TAKEOVER | 强制接管主节点 | CLUSTER FAILOVER TAKEOVER |
CLUSTER FORGET <node_id> | 忘记某节点(用于移除故障节点) | CLUSTER FORGET abc123... |
CLUSTER REPLICATE <node_id> | 设置当前节点成为某主节点的从节点 | CLUSTER REPLICATE masterid |
🧪 4. 诊断与重配置(一般通过 redis-cli 或 redis-trib / redis-cli --cluster 工具)
工具命令 | 说明 |
---|
redis-cli --cluster check host:port | 检查集群健康状态 |
redis-cli --cluster fix host:port | 修复不一致槽位或配置 |
redis-cli --cluster reshard | 进行手动槽位迁移 |
redis-cli --cluster add-node | 添加新节点 |
redis-cli --cluster del-node | 删除节点 |
👁 二、Redis Sentinel 模式命令(哨兵监控主从 + 自动切换)
📡 1. 哨兵自身信息
命令 | 说明 | 示例 |
---|
SENTINEL masters | 获取所有被监控的主节点信息 | SENTINEL masters |
SENTINEL slaves <master-name> | 获取某主节点的所有从节点信息 | SENTINEL slaves mymaster |
SENTINEL sentinels <master-name> | 获取监控某主的其他 Sentinel | SENTINEL sentinels mymaster |
SENTINEL get-master-addr-by-name <master-name> | 获取某主节点的 IP 和端口 | SENTINEL get-master-addr-by-name mymaster |
🔁 2. 主从故障切换
命令 | 说明 | 示例 |
---|
SENTINEL failover <master-name> | 手动强制主从切换 | SENTINEL failover mymaster |
SENTINEL monitor <name> <ip> <port> <quorum> | 添加主节点监控配置 | SENTINEL monitor mymaster 127.0.0.1 6379 2 |
SENTINEL set <name> <option> <value> | 设置 Sentinel 的相关配置项 | SENTINEL set mymaster down-after-milliseconds 5000 |
SENTINEL remove <name> | 移除对某主节点的监控 | SENTINEL remove mymaster |
🔒 3. 典型配置参数项(通过 sentinel.conf
或命令)
参数 | 含义 | 示例 |
---|
down-after-milliseconds | 主机断线判断超时时间 | 5000 毫秒 |
failover-timeout | 一次故障转移最大耗时 | 通常 60000 |
parallel-syncs | 故障切换后并发同步从节点数 | 一般为 1~2 |
✅ 总结:Sentinel vs Cluster 对比速查表
对比项 | Redis Sentinel 模式 | Redis Cluster 模式 |
---|
高可用机制 | 哨兵探测 + 自动主从切换 | 主从节点 + 分布式协议 |
数据分片 | ❌ 不支持,所有节点数据一致 | ✅ 分片存储,16384 槽位 |
故障切换 | 单主自动切换 | 主故障后从节点接管槽位 |
使用场景 | 单实例扩展、高可用但不分片 | 分布式高可用+横向扩容 |
客户端要求 | 普通客户端即可 | 需支持 Cluster 协议 |
命令兼容性 | 100% Redis 原生命令 | 不支持部分命令(如 keys *) |
📚 参考文档(官方链接)
如需我进一步补充 Redis Cluster 的完整部署/扩容/缩容自动化脚本、Sentinel 模式主从切换诊断流程、结合 Kubernetes Operator 的高可用自动化方案,也可以继续整理。是否需要?