云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。

云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应

 

摘要:大家好,今天分享的内容是针对应对高并发利用 Redis 版缓存实现极速响应的 Case ,以及如何实现一键的在线部署。主要分为以下四部分。

1. 方案概览

2. 部署准备

3. 一键部署

4. 完成及清理

 

01. 方案概览

image.png

首先,我们在界面点击在线部署,然后可以看到这里提供了简单的 Demo 方案。

(1) 方案概览:它只在基于由于数据库 Redis 版构件缓存与提速应用,提升业务系统的性能,降低响应时间,使应用能够承担更高的负载。

image.png

(2) 方案架构:可以看到如下图所示,

image.png

我们一键部署脚本会总共创建出云服务器 ECS 实例 云数据库 Redis 以及云数据库 RDS MySQL 版的示例。

image.png

方案示例模拟了员工与部门关联的场景。通过 HTTP API 以部门 ID 为参数获取部门下的员工 ID 以及姓名。数据优先从数据库中查询,选择使用 Redis 作为缓存后首次加载仍然使用数据库查询。之后的查询将会优先从 Redis 中取出结果,在清理掉数据库数据之后,由于缓存有有效期,仍然从 Redis 中查询到结果。本方案的技术架构包括以下基础设施和云服务,专有网络 VPC 交换机,一台云服务器ECS, 云数据库 RDS, MySQL 版示例以及云数据库 Redis 版示例。


02. 部署准备

image.png

(1) 部署准备:请按以下指引完成账号,申请账号,充值 RAM 用户创业和授权等操作。

(2) 准备账号:如果您还没有阿里云账号,请访问阿里云账号注册界面,完成阿里云账号的注册。如果您的阿里云账号中余额不足,请为您的阿里云账号充值。本方案的零资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何云资源采用按量付费部署,账户余额都必须大于等于100元。

 

03. 一键部署流程

image.png

下面开始今天的一键部署流程。首先打开一键配置模板链接,前往 ROS 控制台,系统自动打开使用新资源创建的资源栈的面板,并在模板内容区域展现 YAML 文件的详细信息。在这里我们要注意在屏幕的最上方可以选择可用的地域。

image.png

这里我们选择的是杭州可用区。我们选择的是可用区J,首先我们要配置 ECS 示例,这里推荐使用计算型 C6,也就是ECS.C6.Large的规格。

image.png

搜索一下示例规格选择计算型 C6,然后设置实例密码。RDS 只需要配置 RDS 的账号和密码就可以了,账号是默认的,RDS 密码自己选择。这里我们就选用规格的话,就选用它默认指定MySQL.N1e.Medium.1的规格,也就是两个 CPU 的 Call 2GB 内存Redis 的话也是配置密码就可以了。

image.png

我们的规格使用的是 Redis.Shard.Small.2.Ce,账号就是 Redis。这里的数据库的账号在待会 DMS 的控制台登录的时候需要使用,点击下一步即可进入。

image.png

这里会提示创建资源,并且给出价格明细,点击创建,就可以进入创建资源的状态。接下来我们只要等待资源创建完成,就可以进入下一步。我们可以看到资源栈已经创建成功。接下来完成资源栈部署后,我们需要调用模拟服务的初始化接口来导入模拟数据。

image.png

首先,我们接入 ECS 控制台,点击左侧实例与镜像下面的实例。在最上方的定语中,切换到我们刚刚创建实例所使用的杭州地域。看到选取第一个实例,就是我们刚刚新创建出来的实例。然后要部署模拟应用服务。在实例界面,我们找到 ECS,在右侧操作链点击远程连接,点击立即登录。密码就是刚刚我们设置的密码。在终端中执行指定。返回的结果为成功,就代表我们测试数据已经准备完成,相当于我们的这台 ECS 系统已经预先部署了应用服务。

image.png

接下来我们登我们的云数据库 RDS,点击左侧实例列表。点击下方选择地域为我们刚刚买出使用的杭州,点击实例,在右侧点击登录数据库,进入 DMS 管理界面。数据库的账户为 RDS,密码为刚刚我们设置的密码,使用一条 SELECT 的命令来对数据库进行查询。可以查到数据说明,我们的 RDS 的实例是部署成功的。


04. 完成及清理

下面我们已经完成了一台 ECS 实例和 RDS 实例的部署以及验证。接下来我们来验证在有 Redis 缓存和没有 Redis 缓存的情况下,通过应用去从数据库中获取数据的区别,接下来要做的是三个验证的实验。

image.png

(1)通过对比访问带缓存与不带缓存的接口来验证我们的 Redis 缓存是否生效。

(2)可以通过 Locus性能测试来验证缓存是否减轻了数据库的压力。

(3)通过删除数据库中的数据来验证,在数据库失效之后,缓存是否依然可以命中。

4.1 通过对比访问带缓存与不带缓存的接口,验证缓存功能

首先,我们验证第一个方案,通过对比访问,带缓存与不带缓存的接口来验证缓存功能。首先,我们验证不带缓存的接口,通过浏览器来访问接口,将其中的 IP 地址换成ECS的公网 IP 同时可以看到这里的 Cache First 设置成参数为 False,说明我们优先调用数据库,而不是调用缓存来查询,可以看到结果返回的是成功,能够成功查到里面的数据。

image.png

下一步我们要验证带缓存的接口,我们要把后面 Cache First 参数改为 True。再次访问,我们看到返回的 Message 中可以提示我们是 Success From Cache,说明我们的数据查询是成功的,从 Redis 中查到了。

image.png

我们已经完成了对使用缓存和不使用缓存都可以读取数据的验证。接下来我们登录 Redis 云控制台,尝试直接从 Redis 中拿到数据。同样也是左侧点击实例列表在控制台上方选择地域为杭州,选择我们刚刚创建好的实例,点击右侧登录数据库,数据库的账号为 Redis 密码为我们刚刚设置的密码。通过GET给他们执行该的命令,可以查到数据,这就说明数据已经成功的存在我们的 Redis 中了,那这样我们就完成了方案一的验证。

image.png

4.2 通过 Locust 性能测试,验证缓存减轻数据库压力

接下来我们验证方案二,如何通过 Locust 的性能测试来验证缓存减轻数据库的压力。

image.png

首先,我们要在本地安装 Locust 的工具,使用 Pip3 命令来安装工具,然后我们要创建文件 Locust file.py。同时把代码中的站位的脚本名改成 Locust file.py,接下来我们在命令行中直接执行 Locust 的命令。

image.png

打开浏览器访问 Web 界面,在此界面下我们可以使用工具来模拟我们的用户。每秒钟增加的用户数量,并发用户数量以及目标系统的基地址。我们设置为1000 Host我们填写的是 ECS 的公网地址,点击开始,这里我们可以看到压测的一些相关的参数。

image.png

启动测试并执行一段时间后,我们可以点击 Stop 停止测试。登录云数据库 RDS 控制台在实例列表界面找到目标实例,点击监控。一样也要选择我们所在的杭州地域,点击相关实例。

image.png

点击监控与报警,查看流量吞吐和 QPS 可以看到这里的 QPS 达到是550,最高值500~600左右。

image.png

接下来我们来测试缓存的接口,修改我们原来的代码,继续启动,启动新的测试,继续执行,正式执行完毕,我们继续刷新数据监控,查看最新的监控数据。我们可以看到 RDS 测的 QPS 基本上没有变化,只有个位数的 QPS 说明此时的访问基本全都打在了 Redis 缓存上。

image.png

对比前后2次的数据库监控数据可以明显的看出,在测试无缓存接口时,数据库的流量吞吐率,TPS QPS 执行次数等指标发生了显著变化。在处理带缓存的接口时,这些指标则更为平滑。具体来看,无缓存访问时的执行次数峰值接近700。刚刚我们测试的是550左右,而带缓存情况下则稳定在个位数,这表明缓存机制能够有效缓解数据库的压力,我们已经完成了方案二的验证。

4.3 通过删除数据库中的数据,验证缓存命中

接下来我们继续验证方案三,方案三是通过删除数据库中的数据来验证缓存命中。

image.png

我们首先登录语音数据库 RDS 控制台,继续找到我们的实例,登录数据库,要用 DELETE 命名,执行成功,说明数据清理完成。

image.png

接下来我们继续通过缓存接口来访问我们的数据库,可以看到依然能获取数据,但当我们把 Cache First 改成 False。

image.png

可以看到此时的数据已经为空了。第三个方案说明即使是 RDS中的数据已经被删除,我们缓存中依然能够访问到相关的数据,缓存已被正确命中,这样我们就完成了三个方案的验证。

4.4 清理资源

image.png

接下来我们来讲一下,如何清理资源。在本次方案中,我们创建了一台云服务器 ECS实例交换机,专有网络 VPC, 云数据库 RDS ,MySQL版实例和云数据库 Redis 版实例,测试完方案后,可以参照以下规则处理,处理对应产品的实例,避免继续产生费用。首先登录 ROS 控制台,点击左侧资源站,点击上面地域选择杭州,点击第一个实例,进行删除,删除的方式,选择释放资源,确定,开始删除,等待删除完成后,就可以完成资源的释放,到这里我们的一键部署的视频讲解就完成了。

我的分享到此结束,谢谢大家。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
缓存 NoSQL 中间件
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
Redis,分布式缓存演化之路
|
28天前
|
缓存 NoSQL 架构师
Redis批量查询的四种技巧,应对高并发场景的利器!
在高并发场景下,巧妙地利用缓存批量查询技巧能够显著提高系统性能。 在笔者看来,熟练掌握细粒度的缓存使用是每位架构师必备的技能。因此,在本文中,我们将深入探讨 Redis 中批量查询的一些技巧,希望能够给你带来一些启发。
95 23
Redis批量查询的四种技巧,应对高并发场景的利器!
|
1月前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
4月前
|
NoSQL Cloud Native Linux
通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair
通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair
|
存储 弹性计算 缓存
轻松学习阿里云原生内存数据库Tair
云原生数据库指的是基于云架构的云数据库,是一种云原生数据基础设施;是一种完全利用公有云优势的数据库服务;其本身匹配云环境和分布式事务,一般提供计算存储分离和日志即数据能力,其核心是存储与计算分离。具有弹性伸缩能力、无服务器(Serverless)、高性能、高可扩展、一致性、容错、易于管理和多云支持等特性。云原生数据库(Cloud-NativeDatabase)概念源于国外,随之受到国内厂商的关注,适用于软件工程、计算机、云计算等领域。
轻松学习阿里云原生内存数据库Tair
|
弹性计算 NoSQL 算法
阿里云Redis与Tair压力测评
无意中发现阿里云开发社区的训练营活动,其中有一个7天玩转Redis、tair训练营计划,里面可以免费领取三个月的试用礼包,因为是参营任务,不领取都不行的那种,领取之后放着也是放着,不如跑跑数据看看Redis和Tair的性能有什么区别,简单的压力测试下,本次测试并不精确,也不具有太多参考意义,真的就是为了测试而测试。
299 0
|
Cloud Native NoSQL 数据库
《阿里云产品手册2022-2023 版》——云原生内存数据库 Tair
《阿里云产品手册2022-2023 版》——云原生内存数据库 Tair
153 0
|
缓存 NoSQL Cloud Native
喜报 | 阿里云「云原生内存数据库Tair」「数据库备份DBS」双双斩获“2022技术卓越奖”
日前,国内知名IT垂直媒体&技术社区IT168公布2022年“技术卓越奖”评选结果,经由行业CIO/CTO大咖、技术专家及IT媒体三方的联合严格评审,阿里云云原生内存数据库Tair和数据库备份DBS凭借出众的产品实力斩获“2022年度技术卓越奖”。
喜报 | 阿里云「云原生内存数据库Tair」「数据库备份DBS」双双斩获“2022技术卓越奖”
|
存储 弹性计算 缓存
全面剖析,阿里云原生内存数据库Tair训练营来袭!
7天时间带你全面剖析Tair,参营还有价值250元定制背包、价值150元睡眠套装、价值80元无线充电器等你来拿!
全面剖析,阿里云原生内存数据库Tair训练营来袭!