阿里云Redis助力新东方乐词业务快速稳定发展

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 背景介绍 乐词是新东方倾情打造权威英语单词背记APP,业务涵盖初中、高中、新概念、英语四六级、考研、雅思、托福、GRE、SAT、ACT 、GMAT、托业、商务英语等英语单词库,科学规划词根背记,离线背单词随时学,权威详尽单词解析,全新考试干货课程,群组背记英语单词,完整的视频教学体系为用户提供全方位的单词学习体验。

背景介绍

乐词是新东方倾情打造权威英语单词背记APP,业务涵盖初中、高中、新概念、英语四六级、考研、雅思、托福、GRE、SAT、ACT 、GMAT、托业、商务英语等英语单词库,科学规划词根背记,离线背单词随时学,权威详尽单词解析,全新考试干货课程,群组背记英语单词,完整的视频教学体系为用户提供全方位的单词学习体验。
乐词系统涵盖词书、背词、查词、视频课程、活动、用户、在线支付等10多个核心业务模块,用户使用日活10w+,为了给用户提供稳定可靠的服务,对我们系统的可用性提出了更高的要求。Redis作为业界目前流行的Key-Value型NoSQL存储组件,可以帮我们解决面临的技术挑战。
因我们属于创业型项目,自建系统以及自行运维意味着前期较大的投入以及过高的运维成本,随着业务规模的扩张,资源水平扩展以及垂直扩展也是未来无法避免的痛点,所以我们会尽量选择三方服务搭建我们的系统,对基础服务的技术组件服务选型,我们首要考虑的是:稳定可靠、方便搭建、弹性缩扩容、轻运维,可以使业务快速稳定的实现落地。最终我们选择了阿里云平台的云Redis数据库。

阿里云Redis优势

1、 弹性扩容

  • 存储容量一键扩容:可根据自己业务需求通过控制台对实例存储容量进行调整。
  • 在不中断服务的情况下进行在线扩容:实例存储容量可在线进行调整,无需停止服务,对自身业务不会受到任何影响。

2、 数据安全性

  • 数据持久化存储:内存+硬盘的存储方式,在提供高速数据读写能力的同时满足数据持久化需求。
  • 数据主从双备份:所有数据在主从节点上进行双备份。
  • 支持密码认证方式以确保访问安全可靠。
  • 自动备份功能,保证数据更加安全,还可以根据自己的需求来设置备份周期。

3、 高可用性

  • 我们使用的实例是8G主从高配版,他是基于双机热备架构,系统工作时主节点(Master)和备节点(Slave)数据实时同步,主节点故障时系统自动秒级切换,备节点接管业务,全程自动且对业务无影响,主备架构保障系统服务具有高可用性。
  • 阿里自研故障探测切换系统:阿里云 Redis 服务封装 HA 切换系统,时时探测主节点的异常情况,可以有效解决磁盘 IO 故障,CPU 故障等问题导致的服务异常,及时进行主备切换从而保证服务高可用。
  • 主备复制机制:阿里云针对 Redis 主从复制机制进行了定制修改,采用增量日志格式进行复制传输。当主备复制中断后,对系统性能及稳定性影响极低,有效避免 Redis 原生复制的弊端。
  • 实例级别的资源隔离可以更好地保障单个用户服务的稳定性。
    阿里云redis高可用架构图(标准版-双副本):

image

4、 节省研发运维成本

  • 购买之后即可使用,方便业务快速部署。
  • 阿里云专业技术团队,有力的提供在线支持,避免我们自已人技术员过多干预,降低了人力消耗成本。
  • 提供秒级别实时监控,分钟级别历史监控。
  • 提供各数据结构和接口的监控信息,访问情况一目了然,便于用户对云数据库 Redis 版的使用情况有充分的了解。
  • 可视化的管理监控面板,控制台提供多项监控统计信息,方便用户对 Redis 实例进行管理。

5、 可靠的性能
我们所用的是8G主从高配版,由于 Redis原生采用单线程机制,最大QPS能力在10w左右。

我们的应用场景

1、 用于业务服务的缓存层,涉及到单词词书、用户记忆法、笔记、背词小组活动等核心业务。采用Cache-Aside模式,业务程序自己维护cache逻辑:
读场景:先从缓存读取,如果没有命中,则回源到DB中去获取,并且将数据放入缓存,以备下一次使用。
写场景:先将数据写入DB,成功后再将数据同步至缓存(也可能是删除过期缓存)。
image

2、 实现分布式锁,用于拼团等业务。
使用了Redisson框架(Redis官方推荐)的Lock组件实现分布式锁,它的原理是通过给Redis发送原子性的lua脚本(2.6以上版本,阿里云Redis已支持),实现锁逻辑:
1) 加锁:
image

2) 解锁:
image

3、 业务配置信息存储。
我们的业务降级开关采用了Guava Cache + Redis的方案,基本逻辑如下:
image

4、 背词小组排行榜。使用了Redis的zset数据结构实现背词排行榜,简单高效。
5、 用Redis实现延迟消息队列。使用了Redisson框架的延迟队列Delayed Queue实现拼团结果的延迟触发执行。

目前使用状况

1、 目前我们日活10w+,对Redis的使用,平时日均QPS在5K,峰值QPS可以到达1w(搞活动时会翻倍),运行非常稳定。
2、 阿里云redis支持实例存储容量在线进行升级调整,无需停止服务,对自身业务不会受到任何影响,这种能力对适应业务的敏捷变化非常有帮助。
3、 使用阿里云redis做数据缓存后,后端mysql数据库从未出现过阻塞与瓶颈等问题,而且资源占用比较低,从业务上整体性能提升50%。

我们的使用感受

我们使用阿里云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月前
|
NoSQL Redis Docker
在docker中安装redis,并且阿里云服务器配置
在docker中安装redis,并且阿里云服务器配置
183 1
|
1月前
|
弹性计算 NoSQL Redis
阿里云ECS使用docke搭建redis服务
阿里云ECS使用docke搭建redis服务
154 1
|
1月前
|
弹性计算 NoSQL 测试技术
倚天使用|Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
137508 3
|
2月前
|
NoSQL 关系型数据库 Linux
阿里云RDS购买Linux——安装redis服务
阿里云RDS购买Linux——安装redis服务
93 0
|
3月前
|
NoSQL Java 微服务
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-3
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
123 1
|
3月前
|
前端开发 NoSQL easyexcel
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-2
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
103 0
|
3月前
|
NoSQL 应用服务中间件 对象存储
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-1
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
75 0
|
29天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
1月前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程