Skip to content
返回部署

部署 Redis

自托管 Redis,Docker、持久化、sentinel HA 和 cluster 分片。

平台进阶

为什么

自托管 Redis 控制持久化(RDB/AOF)、内存限制和模块(RediSearch、RedisJSON)。Sentinel 提供 HA,Cluster 提供分片。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

自定义模块、大规模成本和特定持久化需求用自托管 Redis。托管优先 Upstash/Redis Cloud。

如何做

1. Docker — redis:7 镜像加 volume 2. 持久化 — AOF(appendonly yes)或 RDB 快照 3. 认证 — redis.conf 设 requirepass 4. Sentinel — 3 sentinel 监控 master 做 HA 5. Cluster — redis-cli --cluster create 分片 6. 模块 — loadmodule 装 RediSearch、RedisJSON 7. 监控 — INFO、SLOWLOG、延迟监控

示例

# docker-compose.yml services: redis: image: redis:7 command: redis-server --appendonly yes --requirepass secret volumes: - redisdata:/data ports: ["6379:6379"] volumes: redisdata: # redis.conf appendonly yes appendfsync everysec maxmemory 1gb maxmemory-policy allkeys-lru requirepass your-secret # Sentinel HA sentinel monitor mymaster redis1 6379 2 sentinel down-after-milliseconds mymaster 5000 # 连接 redis-cli -h redis -a secret > SET key value > GET key

常见问题

  • ⚠无持久化 — 默认仅内存,重启丢数据,启用 AOF
  • ⚠内存满 — 未设 maxmemory,Redis 用尽 RAM 后 OOM
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓启用 AOF appendfsync everysec — 持久性/性能最佳平衡
  • ✓设 maxmemory + 淘汰策略 — 防 OOM,LRU 淘汰最少用
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答