摘要: Redis是一个使用范围很广的NOSQL数据库,阿里云Redis同时在公有云和阿里集团内部进行服务,本文介绍了阿里云Redis双11的一些业务场景:微淘社区之亿级关系链存储、天猫直播之评论商品游标分页和菜鸟单据履行中心之订单排序。

双11如火如荼的结束了,阿里云Redis(ApsaraDB for Redis原KVStore)也圆满完成了双11Redis的保障工作。目前阿里云Redis提供了单机版本和集群版本的Redis。

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

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

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

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

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

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

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

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

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

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

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

  • 获取当前索引位置
  • 获取索引列表
  • 获取评论数据

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

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

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

结束

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

解密阿里云Redis助力双十一背后的技术的更多相关文章

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

    摘要: Redis是一个使用范围很广的NOSQL数据库,阿里云Redis同时在公有云和阿里集团内部进行服务,本文介绍了阿里云Redis双11的一些业务场景:微淘社区之亿级关系链存储.天猫直播之评论商品 ...

  2. 用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题

    阿里云推荐的Redis服务.NET客户端是ServiceStack.Redis,但ServiceStack.Redis不支持异步,不支持.NET Core,于是尝试使用StackExchange.Re ...

  3. 阿里云 Redis 服务遇到的问题

    ERR unknown command eval 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: St ...

  4. 阿里云ECS连接阿里云Redis问题

    描述 项目之前的服务器使用Windows,Redis使用阿里云的云数据库Redis版,一切正常. 后来了更换了Linux,也配置好了Redis,但连接阿里云的Redis时却怎么也连接不上 原因 ECS ...

  5. 一份完整的阿里云 Redis 开发规范,值得收藏!

    来源:yq.aliyun.com/articles/531067 作者:付磊-起扬 本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明. 键值设计 命令使用 客户端使用 相关工具 通 ...

  6. 阿里云Redis开发规范

    转自: https://yq.aliyun.com/articles/531067 摘要: 本文介绍了在使用阿里云Redis的开发规范,从键值设计.命令使用.客户端使用.相关工具等方面进行说明,通过本 ...

  7. Linux通过端口转发来访问内网服务(端口转发访问阿里云Redis数据库等服务)

    # 安装rinetd wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz& ...

  8. 阿里云Redis开发规范[转]

    一.键值设计 1. key名设计 (1)[建议]: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)[建议]:简洁性 ...

  9. 使用99元一年的256MB高性能阿里云Redis加速Discuz论坛

    介绍 Discuz是一个常见的论坛,支持使用Redis来对论坛进行加速访问,对于访问量比较大的论坛能够取到很好的作用,本文介绍如何使用阿里云高性价比256MBRedis来加速该论坛. 阿里云Redis ...

随机推荐

  1. hdu 5444(构造二叉树然后遍历)

    Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  2. Java 实现随机验证码

    许多系统的注册.登录或者发布信息模块都添加的随机码功能,就是为了避免自动注册程序或者自动发布程序的使用. 验证码实际上就是随机选择一些字符以图片的形式展现在页面上,如果进行提交操作的同时需要将图片上的 ...

  3. Codeforces 375D Tree and Queries(DFS序+莫队+树状数组)

    题目链接  Tree and Queries 题目大意  给出一棵树和每个节点的颜色.每次询问$vj, kj$ 你需要回答在以$vj$为根的子树中满足条件的的颜色数目, 条件:具有该颜色的节点数量至少 ...

  4. git 撤回上一次commit中某一个不想添加的文件

    1. 假设我们修改了文件a,同时修改了IDE的配置文件b 2.此时我们只想添加文件a到commit中,却不小心将b也添加进去了 3.那么怎么撤回呢? 4.第一种方法 :重新提交commit 5. 第二 ...

  5. spring mvc 编写处理带参数的Controller

    在上一随笔记录的基础上,现记录编写处理带有参数的Controller. @Controller //这个注解会告知<context:component:scan> 将HomeControl ...

  6. HDU3625 Examining the Rooms

    @(HDU)[Stirling數] Problem Description A murder happened in the hotel. As the best detective in the t ...

  7. Maven设置代理

    很多时候电信的网络对于出国不太稳定,针对一些库下载速度比较慢,所以在使用SSR出国时配置maven使用是一种不错的选择.当然,还有另一种选择,就是使用国内的镜像库. 操作步骤: 1.打开{M2_HOM ...

  8. vbox在共享文件夹设置链接报错Protocol error问题

    环境: 基于VBox 的 vagrant (centos版本)开发环境. 问题: Virtualbox 虚拟机(centOS)中,在进行go程序编译的时候,需要设置一个链接符,然后得到了如下的错误: ...

  9. linux删除空行操作:awk、grep、tr、sed

    如下:如何删除空行 shen\nshen\\n sen seh sehe she she 真正删除空行,可以使用vim: 通过命令模式删除空行.vim在命令模式下(在vim里输入英文字符:进入命令模式 ...

  10. 客户端svn出现authorization failed异常

    原文:https://blog.csdn.net/big1989wmf/article/details/70144470 发现,原来是 服务端上面 svnserve 这个进程没有启动起来 然后,再试一 ...