redis集群部署方案

有 12 台 1T 内存的机器要做 Redis 集群部署,我可以帮你设计一个高可用、高性能、易扩展的 Redis Cluster 方案。

1. 需求分析

  • 设备:12 台服务器,每台 1T 内存(推测 CPU / 网络配置也较高)
  • 目标:构建一个 Redis 集群,满足 高可用(自动容灾)、高吞吐、可扩展
  • 场景:大概率是缓存、会话存储或实时数据处理,需要考虑分片与副本

2. Redis 集群方案设计

2.1 架构模式选择

Redis 官方推荐 Redis Cluster 模式(3.0+),支持自动分片、主从复制和自动故障转移,无需额外的 Sentinel 层。

2.2 节点分配

  • Redis Cluster 最少需要 3 个主节点
  • 为保证高可用,每个主节点至少 1 个从节点(副本)
  • 12 台机器建议分配为:
    • 6 个主节点 + 6 个从节点
    • 每个主节点有 1 个从节点,分布在不同物理机上

2.3 分片与数据分布

  • Redis Cluster 有 16384 个哈希槽
  • 6 个主节点,每个节点负责大约 16384 / 6 ≈ 2731 个槽
  • 客户端根据 key 的哈希值自动路由到对应节点

2.4 高可用机制

  • 主节点挂掉时,对应的从节点会自动升级为主节点
  • 从节点挂掉不影响数据可用性,只需尽快恢复
  • 跨机房部署时,建议主从节点分机房放置

2.5 节点部署示例

假设 12 台机器的主机名 / IP 为 redis-01 到 redis-12
 
主节点从节点负责槽位
redis-01 redis-07 0-2730
redis-02 redis-08 2731-5461
redis-03 redis-09 5462-8191
redis-04 redis-10 8192-10922
redis-05 redis-11 10923-13652
redis-06 redis-12 13653-16383
主节点从节点负责槽位
redis-01 redis-07 0-2730
redis-02 redis-08 2731-5461
redis-03 redis-09 5462-8191
redis-04 redis-10 8192-10922
redis-05 redis-11 10923-13652
redis-06 redis-12 13653-16383

3. 部署步骤

3.1 系统准备

每台机器:
 
  • 安装 Redis 6.x/7.x(建议最新稳定版)
  • 关闭 Transparent Huge Pages
  • 调整内核参数(vm.overcommit_memory=1 等)
  • 配置最大文件句柄数

3.2 Redis 配置示例(redis.conf)

plaintext
 
 
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
dir /data/redis
masterauth your_password
requirepass your_password
 

3.3 启动所有节点

bash
 
 
redis-server /etc/redis/redis.conf
 

3.4 创建集群

bash
 
 
redis-cli --cluster create \
192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 \
192.168.1.4:6379 192.168.1.5:6379 192.168.1.6:6379 \
192.168.1.7:6379 192.168.1.8:6379 192.168.1.9:6379 \
192.168.1.10:6379 192.168.1.11:6379 192.168.1.12:6379 \
--cluster-replicas 1
 

3.5 验证集群

bash
 
 
redis-cli --cluster check 192.168.1.1:6379
 

4. 性能与容量规划

  • 总内存容量:约 12TB(实际可用约 10TB,预留 20% 空间)
  • 建议设置合理的 maxmemory-policy(如 allkeys-lru)
  • 考虑使用 Redis 6+ 的 I/O 多线程特性提升性能
  • 每台机器建议配置万兆网卡

5. 运维建议

  • 使用 Prometheus + Grafana 监控集群
  • 配置自动备份(RDB+AOF)
  • 定期进行主从切换演练
  • 考虑使用 RedisInsight 进行可视化管理
  • 提前规划扩容方案(可增加主节点数量)

 
下述为一个Redis 集群部署架构图,更直观地展示 12 台机器的主从关系和数据流向。清晰展示 12 台机器的主从关系、数据分片和连接方式。
 
 

image

 

posted @ 2025-10-14 08:46  孤独信徒  阅读(2)  评论(0)    收藏  举报