redis 高可用方案 主从Replication、哨兵Sentinel、集群Cluster

redis 主从

Replication

  • 读写分离
  • 备份策略 AOF/RDB
  • CAP理论:一致性、可用性、分区容错性
    一致性问题? 主从阻塞备份 超时? 丢包?(影响可用性?)

redis sentinel (哨兵)

Redis Sentinel Documentation

  • sentinel集群功能 capabilities
    1. 监控 monitoring master/replica
    2. 通知 notification
    3. 自动故障转移 automatic failover
    4. 配置服务 configuration provider
  • 为什么过半机制? 防止脑裂现象出现不一致
  • 为什么总数是奇数? 要过半的话,6台允许2台挂掉,5台允许2台挂掉,所以
    用5不用6
  • redis sentinel集群本身没有主从?? 无主 gossip
    Redis Sentinel的信息同步

redis cluster (集群)

Redis Cluster Specification

  • redis cluster node 作用
    1. 存储数据
    2. 集群状态(包括哈希槽分配)
    3. 自动发现、检测故障节点、故障迁移(从升主)

  • redis cluster设计的目标
    1. linear scalability
      • 线性扩展:资源量以与数据库吞吐量以相同的比例增加
    2. 写安全 write safe
    3. 高可用 availability
      • Node timeout
      • replicas migration 副本迁移 (slave节点多的分配给少的)
    4. 性能 performance
      • redirect
      • persistent connections

Very high performance and scalability while preserving weak but reasonable forms of data safety and availability is the main goal of Redis Cluster.


容量有限 分片策略?-> 哈希、一致性哈希、redis代理

  • 16384 哈希槽位
  • 无主模型
  • 数据分治 -> 数据聚合不方便实现
    解决方案:人为把数据放到同一个redis实例{oo}k1 (redis自己不做处理,复杂度交给客户)

redis代理

  • predixy
  • twemproxy
  • codis

proxy层解耦客户端和服务端


其他

参考

这可能是目前最全的Redis高可用技术解决方案
redis学习六 集群的原理(转载) 官网的翻译

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Redis高可用常见的有两种方式: 主从复制(Replication-Sentinel模式) Redis集群(Re...
    haoyanbing阅读 29,368评论 4 15
  • 1.1 Redis集群的设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要...
    Flame_1109阅读 2,191评论 1 5
  • 关键词:redis 、 sentinel(哨兵模式)、keepalived 一、Redis单实例 当系统中只运行一...
    fantasymango阅读 4,954评论 1 25
  • 常见的几种方案: 如果程序支持 sentinel ,直接使用 sentinel (推荐) 如果程序不支持 sent...
    akka9阅读 912评论 0 2
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,588评论 16 22