阿里云Redis技术架构演进

wx5c7a97e3804fd 2021-07-20 04:14:23
redis 大数据技术


本文是来自阿里巴巴夏周同学的分享,详细介绍了阿里云Redis的发展和现状。

Redis简介

Redis:Remote Dictionary Server,Key-Value存储系统,优点包括:

  • 易用性:丰富的数据结构支持,Module
  • 高性能:高校的数据结构设计,全内存操作
  • 可靠性:主备同步,持久化

阿里云Redis架构

整体架构

file单节点->单机主备->集群->读写分离->同城容灾->异地多活

阿里云整体架构包含6大支撑系统:

  • HA控制系统

实例高可用探测模块,用于探测监听Redis实例运行情况。

  • 日志收集系统

进行云数据库Redis版运行情况的日志收集,包括实例慢查询日志,访问日志等。

  • 监控系统

进行Redis实例性能监控,信息的收集工作,目前包括基本信息组监控,keys组信息监控,string信息组监控等核心信息

  • 在线迁移系统

当实例所运行的物理机出现故障,在线迁移系统会根据备份系统中的备份文件进行实例重新搭建,保证业务不受影响

  • 备份系统

针对Redis实例进行备份处理,并且将生成的备份文件存储在OSS系统上进行保存。目前Redis备份系统支持用户自定义备份设置,可临时备份并且保存7天内的备份文件。

  • 任务控制系统

Redis实例支持多中管理控制任务,如创建实例、变更配置、备份实例等,任务系统会根据用户下发的操作指令,进行灵活控制并且进行任务跟踪及出错管理。

双副本架构

file

  • 适用场景:纯缓存,数据持久化
  • 性能:8-10w qps
  • 链路:内部SLB -> Redis
  • 访问方式:兼容所有开源客户端
  • SLA:2副本,HA高可用,秒级切换

集群双副本架构

file

  • 适用场景:数据量大,性能要求高
  • 性能:100w qps
  • 链路:内部SLB -> Redis
  • 访问方式:兼容所有开源客户端
  • SLA:分片2副本,高可用

读写分离架构

file

  • 适用场景:读多写少,超大Key,不要求强一致性
  • 优势:
    读写能力线性扩展;支持所有命令;对用户透明

同城容灾

file

  • 适用场景:

数据可用性高

  • 优势:
    用户数据双机房热备,单机房故障,业务无缝切换;机房恢复后,基于Binlog增量同步,防止流量雪崩

异地容灾 多活

file

  • 适用场景:
    多点读写,就近读写
  • 优势:
    容忍N-1机房故障;最终一致;跨地域灾备

混合存储

file

  • 适用场景:
    超大数据量,性能要求适中,视频直播类应用,电商类应用
  • 优势:
    100%兼容Redis;冷热数据分离;超高性价比

阿里云Redis内核优化

file

  • 兼容Memcache协议
  • 高可用探测
  • AOF Binlog
  • 持久化系统优化
  • 安全加密
  • IO、连接优化

file持久化系统改造:

  • 保留历史AOF日志
  • 去除AOF Rewrite
  • 扩展AOF日志信息

file

  • 全新的数据组织形式:RDB全量 历史AOF

file

  • 基于AOF Binlog的同步机制

file独立的端口探测线程:

  • 单独的事件
  • 主线程阻塞不受影响
  • 坏盘探测
  • 慢内存探测
  • 快速容灾

fileAOF后台异步写优化:

  • 新增biowrite模式
  • 轻量级别锁队列
  • bio线程进行线程写入操作
  • 提高性能,避免write慢对主线程的影响

file支持Memcache协议:

  • 支持文本及二进制协议,完全兼容
  • 复用Redis String对象存储memcached
  • 复用原生Redis同步协议
  • 复用原生Redis持久化机制
  • 新版本Memcache支持扫描、备份、更多统计信息

file混合存储优化:

  • 内存中保持所有key和热数据
  • RocksDB中存冷数据
  • 热数据性能和Redis一致
  • 100%兼容Redis
  • 数据换出异步写RocksDB,不阻塞主线程
  • 单实例支持TB 数据存储

file网络IO多线程优化。

声明:本号所有文章除特殊注明,都为原创,公众号读者拥有优先阅读权,未经作者本人允许不得转载,否则追究侵权责任。

关注我的公众号,后台回复【JAVAPDF】获取200页面试题!5万人关注的大数据成神之路,不来了解一下吗?5万人关注的大数据成神之路,真的不来了解一下吗?5万人关注的大数据成神之路,确定真的不来了解一下吗?

欢迎您关注《大数据成神之路》

大数据技术与架构

版权声明
本文为[wx5c7a97e3804fd]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_14222592/2893688

  1. Hadoop 学习(一)HDFS
  2. ZooKeeper 面试题(30道ATM精选问题)
  3. 高并发和海量数据下的 9 个 Redis 经典案例剖析!
  4. 一位读者小姐姐的阿里Java后台面经分享,快被问哭了!(附部分问题详解)
  5. 从redis 1.0 到redis 3.0,打造一个可以key-value生物数据的redis分支
  6. redis自述:年轻MySQL不讲武德,耗子尾汁
  7. 待业半年本想放弃Java,抱着试试的心态面试某C轮金融科技公司居然过了!
  8. 【JAVA】LeetCode力扣 第199场周赛 题解+代码
  9. Redis进阶 - 如何避免Redis集群脑裂?
  10. 大学四年零基础自学Java的路线
  11. Redis基础知识点快速复习手册(上)
  12. 10大HBase常见运维工具整理
  13. 【Java岗面经】阿里六面,终拿offer
  14. 为啥这么多公司用ZooKeeper?它到底解决了什么问题?
  15. Java中高级核心知识全面解析——Redis(分布式锁【简介、实现】、Redlock分布式锁、HyperLoglog【简介、原理、实现、使用】)中
  16. 面向对象的七大原则,你知道几个?
  17. 面向对象的七大原则,你知道几个?
  18. 和字节老哥聊完SpringBoot,才发现自己差远了!
  19. 应该没人比我更细了吧:带你深入剖析Redis分布式锁!
  20. 新来的运维这样用HDFS,CIO都懵了···
  21. Soul网关代理Dubbo插件的使用
  22. 面试官:你真的了解Redis分布式锁吗?
  23. 论文笔记《Improving Docker Registry Design based on Production Workload Analysis》
  24. Soul网关插件之Spring Cloud
  25. Zookeeper面试常见11个连环炮
  26. HDFS经典简答题(实习生必看!)
  27. Java并发编程常识
  28. HDFS是如何设计架构的?
  29. Redis 实战 —— 09. 实现任务队列、消息拉取和文件分发
  30. 设计模式之享元模式
  31. 设计模式之享元模式
  32. Java基础系列:计算机网络基础概念
  33. 设计模式(十二)——享元模式(Integer缓冲池源码分析)
  34. 设计模式(十二)——享元模式(Integer缓冲池源码分析)
  35. MySQL痿了,放不下这么多数据!
  36. 七张图彻底讲清楚ZooKeeper分布式锁的实现原理
  37. ZooKeeper 会话的秘密
  38. ZooKeeper 会话的秘密
  39. ZooKeeper 会话的秘密
  40. Rocketmq源码分析05:broker 消息接收流程
  41. SpringBoot Admin2.0 集成 Java 诊断神器 Arthas 实践
  42. SpringCloudAlibaba—微服务概念及SpringCloudAlibaba介绍
  43. 跟着源码学IM(八):万字长文,手把手教你用Netty打造IM聊天
  44. MySQL 让你拥有不一样感觉
  45. MySQL 让你拥有不一样感觉
  46. Dubbo-01 20190314
  47. 史上最全jdk新特性总结,涵盖jdk8到jdk15!
  48. 【DB笔试面试114】在Oracle中,。。。 background processes()
  49. 【Java】流、IO(初步)
  50. 【Oracle健康检查脚本加量不加价】对Oracle 10g、11g和12c版本分别提供了只读版
  51. 【DB笔试面试258】在Oracle中,执行计划里的access和filter有什么区别?
  52. 【DB笔试面试626】在Oracle中,如何查看和下载BLOB类型的数据?
  53. 图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航
  54. Oracle 使用driving_sites提示优化sql一例
  55. 【DB笔试面试181】在Oracle中,Redo日志文件(Redo Log Files)的作用是什么?
  56. 【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
  57. 听阿里P8聊完这个 SpringBoot 的项目,瞬间觉得自己白学了…
  58. HelloWorld系列教材 (六)- eclipse常见的使用技巧
  59. KubeCon 2020丨与Longhorn创建者面对面,共同探讨K8S云原生存储
  60. KubeCon 2020丨与Longhorn创建者面对面,共同探讨K8S云原生存储