阿里云Redis技术架构演进

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


点击右侧关注,大数据开发领域最强公众号!
点击右侧关注,暴走大数据!

640?wx_fmt=png

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

Redis简介

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

  • 易用性:丰富的数据结构支持,Module

  • 高性能:高校的数据结构设计,全内存操作

  • 可靠性:主备同步,持久化

阿里云Redis架构

整体架构

640?wx_fmt=jpeg

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

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

  • HA控制系统

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

  • 日志收集系统

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

  • 监控系统

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

  • 在线迁移系统

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

  • 备份系统

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

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

双副本架构

640?wx_fmt=png

  • 适用场景:纯缓存,数据持久化

  • 性能:8-10w qps

  • 链路:内部SLB -> Redis

  • 访问方式:兼容所有开源客户端

  • SLA:2副本,HA高可用,秒级切换

集群双副本架构

640?wx_fmt=jpeg

  • 适用场景:数据量大,性能要求高

  • 性能:100w qps

  • 链路:内部SLB -> Redis

  • 访问方式:兼容所有开源客户端

  • SLA:分片2副本,高可用

读写分离架构

640?wx_fmt=jpeg

  • 适用场景:读多写少,超大Key,不要求强一致性

  • 优势:读写能力线性扩展;支持所有命令;对用户透明

同城容灾

640?wx_fmt=jpeg

  • 适用场景:

数据可用性高

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

异地容灾+多活

640?wx_fmt=jpeg

  • 适用场景:多点读写,就近读写

  • 优势:容忍N-1机房故障;最终一致;跨地域灾备

混合存储

640?wx_fmt=jpeg

  • 适用场景:超大数据量,性能要求适中,视频直播类应用,电商类应用

  • 优势:100%兼容Redis;冷热数据分离;超高性价比

阿里云Redis内核优化

640?wx_fmt=jpeg

  • 兼容Memcache协议

  • 高可用探测

  • AOF Binlog

  • 持久化系统优化

  • 安全加密

  • IO、连接优化

640?wx_fmt=jpeg

持久化系统改造:

  • 保留历史AOF日志

  • 去除AOF Rewrite

  • 扩展AOF日志信息

640?wx_fmt=jpeg

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

640?wx_fmt=jpeg

  • 基于AOF Binlog的同步机制

640?wx_fmt=jpeg

独立的端口探测线程:

  • 单独的事件

  • 主线程阻塞不受影响

  • 坏盘探测

  • 慢内存探测

  • 快速容灾

640?wx_fmt=jpeg

AOF后台异步写优化:

  • 新增biowrite模式

  • 轻量级别锁队列

  • bio线程进行线程写入操作

  • 提高性能,避免write慢对主线程的影响

640?wx_fmt=jpeg

支持Memcache协议:

  • 支持文本及二进制协议,完全兼容

  • 复用Redis String对象存储memcached

  • 复用原生Redis同步协议

  • 复用原生Redis持久化机制

  • 新版本Memcache支持扫描、备份、更多统计信息

640?wx_fmt=jpeg

混合存储优化:

  • 内存中保持所有key和热数据

  • RocksDB中存冷数据

  • 热数据性能和Redis一致

  • 100%兼容Redis

  • 数据换出异步写RocksDB,不阻塞主线程

  • 单实例支持TB+数据存储

640?wx_fmt=jpeg

网络IO多线程优化。

欢迎点赞+收藏+转发朋友圈素质三连

640?wx_fmt=jpeg640?wx_fmt=jpeg

文章不错?点个【在看】吧! ?

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

  1. Hadoop面试题(一)
  2. Hadoop面试题总结-HDFS
  3. Hadoop面试题总结-HDFS
  4. Hadoop面试题总结(三)- MapReduce
  5. Hadoop面试题总结(三)- MapReduce
  6. Hadoop面试题(四)- YARN
  7. Hadoop面试题(四)- YARN
  8. Hadoop面试题总结(五)- 优化
  9. Hadoop面试题总结(五)- 优化
  10. 大数据面试题之Hadoop系列(深入部分)
  11. 大数据面试题之Hadoop系列(深入部分)
  12. Java NIO之拥抱Path和Files
  13. 【Java Web开发指南】云服务器部署项目供外网访问(Tomcat)
  14. 2020 年九大顶级 Java 框架!别再用一些落后的技术了!
  15. 【大数据哔哔集20210108】Spark Shuffle 和 Hadoop Shuffle有什么异同?
  16. 【大数据哔哔集20210108】Spark Shuffle 和 Hadoop Shuffle有什么异同?
  17. 不建议Java程序员用阿里巴巴规范,而使用GoogleGuava编程的原因
  18. 【大数据面试之对线面试官】MapReduce/HDFS/YARN面试题70连击
  19. 【大数据面试之对线面试官】MapReduce/HDFS/YARN面试题70连击
  20. Netty源码解析-概述篇
  21. Netty源码解析-概述篇
  22. Netty源码解析1-Buffer
  23. Netty源码解析1-Buffer
  24. Netty源码解析2-Reactor
  25. Netty源码解析2-Reactor
  26. Netty源码解析3-Pipeline
  27. Netty源码解析3-Pipeline
  28. Netty源码解析4-Handler综述
  29. Netty源码解析4-Handler综述
  30. Netty源码解析5-ChannelHandler
  31. Netty源码解析5-ChannelHandler
  32. Netty源码解析6-ChannelHandler实例之LoggingHandler
  33. Netty源码解析6-ChannelHandler实例之LoggingHandler
  34. Netty源码解析7-ChannelHandler实例之TimeoutHandler
  35. Netty源码解析7-ChannelHandler实例之TimeoutHandler
  36. Netty源码解析8-ChannelHandler实例之CodecHandler
  37. Netty源码解析8-ChannelHandler实例之CodecHandler
  38. Netty源码解析9-ChannelHandler实例之MessageToByteEncoder
  39. Netty源码解析9-ChannelHandler实例之MessageToByteEncoder
  40. 大数据面试题之Hbase系列
  41. 你可能需要的Kafka面试题与答案整理
  42. 你可能需要的Kafka面试题与答案整理
  43. 后起之秀Pulsar VS. 传统强者Kafka?谁更强
  44. 后起之秀Pulsar VS. 传统强者Kafka?谁更强
  45. 【大数据哔哔集20210123】别问,问就是Kafka最可靠
  46. 【大数据哔哔集20210123】别问,问就是Kafka最可靠
  47. 【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌
  48. 【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌
  49. 【大数据哔哔集20210117】Kafka 的高可靠性是怎么实现的
  50. 【大数据哔哔集20210117】Kafka 的高可靠性是怎么实现的
  51. Kafka Connect | 无缝结合Kafka构建高效ETL方案
  52. Kafka面试题总结(一)
  53. Kafka面试题总结(一)
  54. Kafka面试题整理(二)
  55. Kafka面试题整理(二)
  56. 基于Kafka Flink Redis的电商大屏实时计算案例
  57. 基于Kafka Flink Redis的电商大屏实时计算案例
  58. Google布隆过滤器与Redis布隆过滤器详解
  59. Google布隆过滤器与Redis布隆过滤器详解
  60. The spring boot process executes a function (four solutions)