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 臺機器的主從關系、數據分片和連接方式。


浙公網安備 33010602011771號