双十一如火如荼,云数据库Redis版也圆满完成了双十一的保障工作。

背景介绍

目前云数据库Redis版提供了标准单副本、标准双副本和集群版本。

标准单副本和标准双副本Redis具有很高的兼容性,并且支持Lua脚本及地理位置计算。集群版本具有大容量、高性能的特性,能够突破Redis单线程的单机性能极限。

云数据库Redis版默认双机热备并提供了备份恢复支持,同时阿里云Redis源码团队持续对Redis进行优化升级,提供了强大的安全防护能力。本文将选取双十一的一些业务场景简化之后进行介绍,实际业务场景会比本文复杂。

微淘社区之亿级关系链存储

微淘社区承载了亿级淘宝用户的社交关系链,每个用户都有自己的关注列表,每个商家有自己的粉丝信息,整个微淘社区承载的关系链如下图所示。

如果选用传统的关系型数据库模型表达如上的关系信息,会使业务设计繁杂,并且不能获得良好的性能体验。微淘社区使用Redis集群缓存存储社区的关注链,简化了关注信息的存储,并保证了双十一业务丝滑一般的体验。微淘社区使用了Hashes存储用户之间的关注信息,存储结构如下,并提供了以下两种的查询接口:

  • 用户A是否和用户B产生过关注关系
  • 用户A的主动关系列表

天猫直播之评论商品游标分页

双十一用户在观看无线端直播的时候,需要对直播对应的评论进行刷新动作,主要有以下三种模式:

  • 增量下拉:从指定位置向上获取指定个数(增量)的评论。
  • 下拉刷新:获取最新的指定个数的评论。
  • 增量上拉:从指定位置向下获取指定个数(增量)的评论。

无线直播系统使用Redis优化该场景的业务,保证了直播评论接口的成功率,并能够保证5万以上的TPS和毫秒级的response time请求。直播系统对于每个直播会写入两份数据,分别为索引和评论数据,索引数据为SortedSet的数据结构用于对评论的排序,而评论数据使用Hashes进行存储,在获取评论的时候通过索引拿到需要的索引ID之后通过Hashes的读取来获得评论的列表。评论的写入过程如下:

用户在刷新列表之后后台需要获取对应的评论信息,获取的流程如下:

  1. 获取当前索引位置
  2. 获取索引列表
  3. 获取评论数据

菜鸟单据履行中心之订单排序

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

订单履行中心通过使用Redis来对所有的物流订单进行排序决定哪个订单是最高优先级的。