阿里云Redis技术架构演进

复制粘贴侠
• 阅读 3198

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

Redis简介

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

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

阿里云Redis架构

整体架构

阿里云Redis技术架构演进
单节点->单机主备->集群->读写分离->同城容灾->异地多活

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

  • HA控制系统

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

  • 日志收集系统

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

  • 监控系统

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

  • 在线迁移系统

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

  • 备份系统

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

  • 任务控制系统

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

双副本架构

阿里云Redis技术架构演进

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

集群双副本架构

阿里云Redis技术架构演进

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

读写分离架构

阿里云Redis技术架构演进

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

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

同城容灾

阿里云Redis技术架构演进

  • 适用场景:

数据可用性高

  • 优势:

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

异地容灾+多活

阿里云Redis技术架构演进

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

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

混合存储

阿里云Redis技术架构演进

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

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

阿里云Redis内核优化

阿里云Redis技术架构演进

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

阿里云Redis技术架构演进
持久化系统改造:

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

阿里云Redis技术架构演进

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

阿里云Redis技术架构演进

  • 基于AOF Binlog的同步机制

阿里云Redis技术架构演进
独立的端口探测线程:

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

阿里云Redis技术架构演进
AOF后台异步写优化:

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

阿里云Redis技术架构演进
支持Memcache协议:

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

阿里云Redis技术架构演进
混合存储优化:

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

阿里云Redis技术架构演进
网络IO多线程优化。

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

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

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

阿里云Redis技术架构演进

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
05 redis(进阶)
redis阶段一、认识redis1、什么是redisRedis是由意大利人SalvatoreSanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:RemoteDictionaryServer,该软件使用C语言编写,Redis是一个keyvalue存储系统,
Stella981 Stella981
3年前
Linux实战教学笔记45:NoSQL数据库之redis持久化存储(一)
第1章redis存储系统1.1redis概述REmoteDIctionaryServer(Redis)是一个基于keyvalue键值对的持久化数据库存储系统。redis和大名鼎鼎的Memcached缓存服务软件很像,但是redis支持的数据存储类型比memcached更丰富,包括strings(字符串),lists(列
Stella981 Stella981
3年前
Redis进阶应用:Redis+Lua脚本实现复合操作
一、引言Redis是高性能的keyvalue数据库,在很大程度克服了memcached这类key/value存储的不足,在部分场景下,是对关系数据库的良好补充。得益于超高性能和丰富的数据结构,Redis已成为当前架构设计中的首选keyvalue存储系统。虽然Redis官网上提供了200多个命令,但做程序设计时还是避免不了为了实现一小步业
Stella981 Stella981
3年前
Redis简介
Redis简介Redis是完全开源免费的,遵守BSD协议,是一个高性能的keyvalue数据库Redis与其他keyvalue缓存产品有以下三个特点:◆Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。◆Redis不仅仅支持简单的keyvalue类型的数据,同时还提供list,set,z
Stella981 Stella981
3年前
Redis5版本集群搭建
一、简介1.1Redis是什么Redis是一个开源的,使用ANSIC编写,高性能的KeyValue的NoSQL数据库。1.2Redis特点(1)基于内存(2)可持久化数据(3)具有丰富的数据结构类型,适应非关系型数据的存储需求(4)支持绝大多数主流开发语言,如C
Stella981 Stella981
3年前
Spring Boot(十二):看完这篇,Redis你就入门了
一、Redis简介1、Redis(RemoteDictionaryServer远程字段服务)是一个开源的使用ANSIC语言编写、支持网络、科技与内存亦可持久化的日志型、keyvalue数据库,并提供多种语言的API。2、Redis是一个keyvalue存储系统,它支持存储的value类型相对更多,包括string、list、set
Stella981 Stella981
3年前
Redis快速入门,学会这15点,真的够用了!
1、Redis简介REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的keyvalue存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值
Stella981 Stella981
3年前
Spring Boot 之 Redis详解
Redis是目前业界使用最广泛的内存数据存储。Redis支持丰富的数据结构,同时支持数据持久化。Redis还提供一些类数据库的特性,比如事务,HA,主从库。REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的keyvalue存储系统。!(http://img3.imgtn.
Stella981 Stella981
3年前
Redis 概念以及底层数据结构
Redis简介REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的keyvalue存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。它通常被称为数据结
Stella981 Stella981
3年前
Redis总结
介绍:Redis(全称为REmoteDIctionaryServer)是一个由SalvatoreSanfilippo写的keyvalue存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(v
Stella981 Stella981
3年前
Redis的简介
Redis简介Redis是一个高性能的keyvalue数据库。支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储...Redis是一个nosql,非关系型数据库。Redis与其他keyvalue缓存产品有以下几个特点:Reids是基于内存