阿里云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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王知无(import_bigdata)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值