深度解析双十一背后的阿里云 Redis 服务

在一片欢呼之中,2018年的双十一完美收官,各项数据不出意外的刷出了新的记录,亮眼的数据背后是阿里过硬的技术支撑。其中阿里云Redis不只保障了阿里集团内部业务双十一的流量洪峰平稳度过,也让使用阿里云Redis的各个客户度过了一个安稳省心的双十一。
 
目前阿里云Redis涵盖了丰富的产品形态:主从、集群、读写分离、同城容灾、异地多活,能够选择单副本,双副本,还有混合存储类型。
  • 主从规格的Redis具备100%的兼容性;
  • 读写分离增长只读节点承担读流量,成本最优;
  • 集群规格大容量、高性能,突破单机性能极限,兼容redis cluster, sentinel等多种架构,上云无忧;
  • 同城容灾双机房部署,整机房故障切换到正常机房;
  • 异地多活让业务全球部署,就近写入,自动全球实时同步。
此外,阿里云Redis还拥有热备份、帐号、安全等功能,知足业务的各项安全上的需求。本文将简单介绍下2018年双十一的部分业务场景。
 

直播

 
直播在双十一期间也迎来流量高峰,观看直播的用户每发一条评论背后就会使用阿里云的Redis的服务。直播平台会对每条评论写入两条数据:索引和用户评论,索引使用Redis的SortedSet数据结构对评论进行排序,而评论内容自己使用Hash存储。获取评论的时候,先读索引,再访问对应Hash拿到评论列表。评论的写入过程以下:
 
f828c6c77203d58db6e4f5b14b73eee23c13dbd1
 
如今的直播必不可少的就是弹幕,和评论同样,异常直播弹幕的写入QPS可能很是高,而且用户遍及全国各地甚至是分布在全球的华人,一条在美国发出的弹幕跨洋写进部署在国内,时延是不可接受的,物理距离的限制就算是低延迟的Redis也无能为力,各个地域单独部署一套存储又会形成不一样地域的用户弹幕没法相互看到。阿里云Redis多活产品是为这种场景而生,每一个地域部署一套Redis,用户就近写入,后端自动实时同步,跨洋的小伙伴感受再也不遥远。
 
3d0cab3dc087b023c679536ee14490f7f7fef914
 

菜鸟订单履行

 
双11用户在产生一个交易订单以后会随之产生一个物流订单。通过菜鸟仓配系统处理的订单,为了让仓配各个阶段可以更加智能的协同做业,决策系统会根据订单信息指定出对应的订单履行计划,包括何时下发仓、何时出库、何时配送揽收、什么 时候送达等信息,单据履行中心根据履行计划,对每一个阶段按照对应的时间去履行物流服务。因为仓、配的运力有限,对于有限的运力下,指望最先做业的单据是业务认为优先级最高的单据,因此订单在真正下发给仓或者配以前,须要按照优先级进行排序。
订单履行中心经过使用Redis来对全部的物流订单进行排序决定哪一个订单是最高优先级的。
 

ec946aa1d03c3e15784b7972e98d042681036fa1

 

微淘社区用户关系链

 
微淘社区承载了亿级淘宝用户的社交关系链,对于每一个用户都有本身的关注列表,每一个商家有本身的粉丝信息,整个微淘社区承载的关系链以下图所示。
 
f828c6c77203d58db6e4f5b14b73eee23c13dbd1
 
Redis丰富的数据类型让这种关系链的存储变得简单,高性能保证了双十一期间业务仍如丝般顺滑。好比微淘社区使用了Hash存储用户之间的关注信息,包括:1)用户A是否关注过用户B;2)用户A/B的关系列表。
 

双十一大屏

双十一期间不光有出镜率最高的媒体中心数据大屏,还有不少技术和业务模块的监控数据大屏。这类大屏不只要求数据实时性高,对可靠性要求也很是高,一旦出现异常,经过大屏能够快速展现出来。
  • 数据缓存
大屏汇聚了全部业务或者技术模块的监控信息,具备来源广、数据量大、实时性高的特色,Redis的高性能低延迟知足需求。大量数据经过pipeline批量更新,存入数据库时使用update case when语句进行一次批量更新,效率很是高,大大缓解了数据库的压力。
  • 竞争锁
大屏的高可用要求很是高,任何故障下大屏必须能够正常展现。整个大屏背后须要双机房甚至更多机房的部署,多个任务同时进行,基于Redis实现的竞争锁来保证一个任务实际执行。
 

机房搬迁

 
双十一以前阿里集团上海机房业务总体搬迁到张北机房,涉及数百Redis实例,同时迁移还须要知足几个要求:
 
  1. 同时要求Redis服务的搬迁对业务透明,不影响业务的正常服务;
  2. 必须保证数据的一致性,不丢不重;
  3. 数据同步必须具有断点续传功能;
  4. 具有回滚方案,一旦业务切换出现问题,能够随时切换回来。
 
阿里云Redis多活不只彻底知足了业务所提出的需求,还已经产品化和自动化,整个迁移过程用户只须要在控制台上点下鼠标便可完成,实例状态,后端的数据同步状态实时显示在控制台上。
 

结束

Redis是一个优秀的开源数据库,提供了开发者更便利的数据模型,阿里云Redis致力于提供稳定、高性能的Redis服务,欢迎广大开发者使用阿里云Redis服务。redis


原文连接
本文为云栖社区原创内容,未经容许不得转载。数据库

相关文章
相关标签/搜索