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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
全局流量管理 GTM,标准版 1个月
简介: 摘要: Redis是一个使用范围很广的NOSQL数据库,阿里云Redis同时在公有云和阿里集团内部进行服务,本文介绍了阿里云Redis双11的一些业务场景:微淘社区之亿级关系链存储、天猫直播之评论商品游标分页和菜鸟单据履行中心之订单排序。
在一片欢呼之中,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实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
80 3
|
19天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
104 2
|
1月前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
29天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
1月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
1月前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
74 3
|
2月前
|
域名解析 网络协议
非阿里云注册域名如何在云解析DNS设置解析?
非阿里云注册域名如何在云解析DNS设置解析?
|
2月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
2月前
|
弹性计算 负载均衡 网络协议
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
|
1月前
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树

推荐镜像

更多