Redis/Rueidis 多版本多模式 Docker 部署指南
2025-07-10 07:27:42作者:廉彬冶Miranda
概述
Redis/Rueidis 项目提供了一个全面的 Docker Compose 配置文件,用于快速部署多种 Redis 版本和多种运行模式的环境。这个配置特别适合开发者在本地环境中测试不同 Redis 版本和架构的兼容性,或者用于 CI/CD 环境中的集成测试。
环境配置详解
基础 Redis 服务
配置中包含了多个基础 Redis 服务实例:
- Redis 7.4:最新稳定版 Redis 服务,映射到主机的 6379 端口
- Redis 5:旧版 Redis 服务,映射到主机的 6355 端口
- Redis Lock 专用实例:基于 Redis 7.4 的独立实例,专门用于分布式锁测试
这些基础服务使用轻量级的 Alpine Linux 镜像,确保资源占用最小化。
兼容性测试服务
为了测试与不同 Redis 生态系统的兼容性,配置包含了:
- Redis Stack:包含 RedisJSON、RediSearch 等模块的完整 Redis 生态
- KeyDB:Redis 的多线程分支版本
- DragonflyDB:高性能内存数据库,兼容 Redis 协议
- Kvrocks:基于 RocksDB 的持久化 Redis 兼容存储
这些服务分别映射到不同的主机端口,可以同时运行互不干扰。
高级架构模式
哨兵模式 (Sentinel)
配置中提供了两个哨兵集群:
-
Redis 7.4 哨兵集群:
- 主节点运行在 6380 端口
- 哨兵服务运行在 26379 端口
- 配置为监控主节点并自动故障转移
-
Redis 5 哨兵集群:
- 主节点运行在 6385 端口
- 哨兵服务运行在 26355 端口
- 用于测试旧版 Redis 的哨兵行为
集群模式 (Cluster)
配置中包含了多个 Redis 集群:
-
Redis 7.4 三节点集群:
- 节点分别运行在 7001-7003 端口
- 自动创建集群并分配槽位
-
Redis 5 三节点集群:
- 节点分别运行在 7004-7006 端口
- 用于测试旧版 Redis 集群行为
-
适配器测试集群:
- 提供了额外的 Redis 5 和 7.4 集群
- 节点分别运行在 7007-7012 端口
- 用于测试客户端适配器在不同集群版本下的行为
使用场景
这个 Docker Compose 配置特别适用于以下场景:
- 多版本兼容性测试:同时运行 Redis 5 和 7.4,确保应用在不同版本下的行为一致
- 分布式系统开发:提供哨兵和集群模式,方便开发分布式锁、选举等特性
- 性能对比:可以同时运行原生 Redis、KeyDB 和 DragonflyDB 进行性能对比
- 模块功能测试:通过 Redis Stack 实例测试 RediSearch 等模块功能
最佳实践建议
- 资源分配:由于同时运行多个 Redis 实例,建议为 Docker 分配至少 4GB 内存
- 网络隔离:如果需要更真实的测试环境,可以考虑使用自定义 Docker 网络
- 持久化配置:默认配置禁用了持久化(--save "" --appendonly no),适合测试环境
- 监控:可以使用 Redis 自带的 INFO 命令或第三方工具监控各个实例状态
总结
Redis/Rueidis 的这个 Docker Compose 配置提供了一个功能全面的 Redis 测试环境,涵盖了从传统单实例到分布式集群的各种部署模式,以及从旧版到最新版的多版本支持。开发者可以基于这个配置快速搭建测试环境,验证应用在不同 Redis 环境下的行为,大大提高了开发和测试效率。