1. Redis集群搭建背景与需求解析
Redis作为高性能的内存数据库,在分布式系统中扮演着重要角色。传统单节点Redis存在单点故障风险,而哨兵模式虽然能实现高可用,但在数据分片和横向扩展方面存在局限。Redis Cluster作为官方推荐的分布式解决方案,通过数据分片(Sharding)和主从复制相结合的方式,既实现了数据的高可用,又能突破单机内存限制。
我在实际生产环境中多次部署Redis集群,发现非哨兵模式的Redis Cluster具有以下优势:
- 自动数据分片(16384个哈希槽)
- 主从节点自动故障转移
- 支持部分节点下线不影响整体服务
- 客户端直接路由请求,无需代理层
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与Docker配置
2.1 基础环境要求
建议使用Linux系统(如Ubuntu 20.04+)或MacOS,Windows需使用WSL2。Docker版本应不低于20.10.x,Docker Compose建议2.5+版本。
验证环境:
bash复制docker --version
docker-compose --version
2.2 网络规划
Redis集群需要节点间互通,建议创建专用网络:
bash复制docker network create redis-cluster-net
典型集群配置(6节点:3主3从):
| 节点角色 | 端口映射 | 数据卷挂载 |
|---|---|---|
| redis-1 | 7001:7001 | /data/redis/7001 |
| redis-2 | 7002:7002 | /data/redis/7002 |
| ... | ... | ... |
3. 集群节点配置详解
3.1 Redis配置文件模板
创建redis-cluster.tmpl作为基础配置:
conf复制port ${PORT}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
关键参数说明:
- `c
