本文面向希望稳定使用 Redis 的团队,提供从集群搭建、持久化到故障演练的完整步骤,所有参数与命令均可在开发环境与生产环境验证。


## 适用版本与前提


  • Redis 6.x/7.x(推荐 7.x)。
  • 基于 `redis-cli` 与官方 Cluster/Sentinel 组件进行操作。

## Cluster 部署与验证


# 创建 6 节点(3 主 3 从)示例,端口 7000–7005
redis-cli --cluster create 10.0.0.10:7000 10.0.0.11:7001 10.0.0.12:7002 \
                               10.0.0.13:7003 10.0.0.14:7004 10.0.0.15:7005 \
                               --cluster-replicas 1

# 查看集群信息
redis-cli -c -h 10.0.0.10 -p 7000 cluster info
redis-cli -c -h 10.0.0.10 -p 7000 cluster nodes

写入与读写验证:


redis-cli -c -h 10.0.0.10 -p 7000 SET user:1001 "Alice"
redis-cli -c -h 10.0.0.10 -p 7000 GET user:1001

## 持久化策略(AOF/RDB)


`redis.conf` 关键参数:


appendonly yes
appendfsync everysec   # 性能与持久性的折中;强一致选 always
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

save 900 1
save 300 10
save 60 10000

AOF 重写与 RDB 快照可同时启用;对高写入压力场景,使用 `everysec` 获得更优吞吐与接受的持久性折中。


## Sentinel 高可用(主从)


# sentinel.conf 示例片段
sentinel monitor mymaster 10.0.0.10 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

启动多个 Sentinel 实例(至少 3 个),并验证自动故障转移:


# 模拟主节点故障
redis-cli -h 10.0.0.10 -p 6379 DEBUG SEGFAULT

# 观察 Sentinel 日志与新主节点提升

## 故障演练与一致性注意事项


  • 写入一致性:业务关键路径避免跨槽事务,强一致读建议在同键空间使用 `GET` 后立即确认或通过 Lua 脚本保证原子性。
  • 集群变更期间(迁移槽位/故障转移),客户端需开启 `-c` 或驱动的集群支持以自动重定向。
  • AOF `always` 提供最强持久性但显著影响吞吐,生产中优先 `everysec` 并结合监控与告警。

## 监控与延迟


redis-cli info persistence
redis-cli info replication
redis-cli --latency

结合延迟与持久化指标,评估当前写入模式对响应时间的影响;必要时调整 `appendfsync` 与重写阈值。


## 相关文章(同分类热门)


  • [MySQL 8.0 复制与高可用:Group Replication 与 InnoDB Cluster 实战指南](./MySQL 8.0 复制与高可用:Group Replication 与 InnoDB Cluster 实战指南.md)
  • [ProxySQL 读写分离与连接池优化:MySQL 8.0 生产可验证实战指南](./ProxySQL 读写分离与连接池优化:MySQL 8.0 生产可验证实战指南.md)

## 结语


通过合理的 Cluster/Sentinel 架构与持久化参数选择,并结合故障演练与延迟监控,Redis 能在生产环境实现稳定的高可用与可预期的性能表现。



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部