Featured image of post 不同部署模式的使用场景

不同部署模式的使用场景

记录下Redis的一些使用场景

Redis 不同部署模式的使用场景

Redis 支持三种主要部署模式:单机模式、哨兵模式(Sentinel)和集群模式(Cluster)。每种模式适合不同的业务场景,下面是它们的详细对比和使用建议。

  1. 单机模式 (Standalone) 特点
    • 单个 Redis 实例运行
    • 无自动故障转移能力
    • 配置简单,资源消耗少 适用场景
    • 开发/测试环境:快速搭建,低成本
    • 小型应用:数据量小(小于2GB),访问量低(QPS < 1万)
    • 缓存场景:可以接受短暂不可用
    • 本地缓存替代:比本地缓存更强大的数据结构支持 不适用场景
    • 生产环境关键业务(除非可以接受停机)
    • 大数据量(超过单机内存容量)
    • 高可用性要求的场景
  2. 哨兵模式 (Sentinel) 特点
    • 由1个主节点和多个从节点组成
    • 哨兵节点监控主从状态
    • 自动故障转移(主节点宕机时选举新主)
    • 客户端自动发现可用节点 适用场景
    • 读写分离:读多写少场景(主写从读)
    • 高可用需求:需要自动故障转移
    • 中小规模数据:数据量适合单机存储
    • 业务连续性要求高:如电商库存、支付系统 典型配置
    • 至少3个哨兵节点(避免脑裂)
    • 1主2从是常见配置
  3. 集群模式 (Cluster) 特点
    • 数据分片(16384个slot)存储在多节点
    • 每个分片有主从复制
    • 自动故障转移
    • 支持水平扩展 适用场景
    • 大数据量:超过单机内存容量(如100GB+)
    • 高性能需求:需要分散读写压力
    • 高并发场景:QPS超过单机处理能力(10万+)
    • 需要线性扩展:随业务增长方便扩容 不适用场景
    • 事务操作多的场景(仅支持同一节点上的事务)
    • 大量使用多键操作(除非所有键在同一节点) 模式对比表 特性 单机模式 哨兵模式 集群模式 数据量 < 2GB < 64GB(单机最大内存) 理论上无限 高可用 不支持 支持 支持 扩展性 垂直扩展 读写分离 水平扩展 性能 单机性能 读性能可扩展 读写性能均可扩展 复杂度 简单 中等 复杂 适用场景 开发/测试/小型 中等规模生产环境 大规模生产环境 客户端支持 所有客户端 需要支持Sentinel 需要支持Cluster 选型建议
  4. 开发测试:单机模式足够
  5. 中小型生产环境: ○ 如果主要是缓存用途 → 单机模式+持久化 ○ 如果需要高可用 → 哨兵模式(1主2从+3哨兵)
  6. 大型生产环境: ○ 数据量大 → 集群模式 ○ 超高并发 → 集群模式
  7. 特殊场景: ○ 需要地理冗余 → 哨兵模式跨机房部署 ○ 需要极高写入性能 → 集群模式分散写入压力 配置示例 哨兵模式典型配置 shell 复制 下载

启动3个哨兵

redis-sentinel sentinel1.conf redis-sentinel sentinel2.conf redis-sentinel sentinel3.conf

哨兵配置示例

sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 集群模式最小配置 shell 复制 下载

至少需要3主3从

redis-server cluster-node1.conf –cluster-enabled yes redis-server cluster-node2.conf –cluster-enabled yes redis-server cluster-node3.conf –cluster-enabled yes

…从节点配置类似

创建集群

redis-cli –cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 根据业务需求、数据规模和团队运维能力选择合适的Redis部署模式,可以在性能、可用性和复杂度之间取得平衡。

Licensed under CC BY-NC-SA 4.0
最后更新于 Mar 16, 2022 11:30 UTC
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计