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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 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 控制台,点击左侧资源站,点击上面地域选择杭州,点击第一个实例,进行删除,删除的方式,选择释放资源,确定,开始删除,等待删除完成后,就可以完成资源的释放,到这里我们的一键部署的视频讲解就完成了。

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

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
3
3
0
1034
分享
相关文章
阿里云Tair KVCache:打造以缓存为中心的大模型Token超级工厂
Tair KVCache 是阿里云推出的面向大语言模型推理场景的缓存加速服务,基于分布式内存池化和分级缓存体系,解决显存墙与带宽瓶颈问题。为万亿参数模型的高效推理提供技术保障,推动 AI 算力进化与规模化应用。
基于ssm的培训学校教学管理平台,附源码+数据库+论文
金旗帜文化培训学校网站项目包含管理员、教师和用户三种角色,各角色功能通过用例图展示。技术框架采用Java语言,B/S架构,前端为Vue+HTML+CSS+LayUI,后端为SSM,数据库为MySQL,运行环境为JDK8+Tomcat8.5。项目含12张数据库表,非前后端分离,支持演示视频与截图查看。购买后提供免费安装调试服务,确保顺利运行。
59 14
基于ssm的培训学校教学管理平台,附源码+数据库+论文
该项目为一培训学校教学管理平台,涵盖管理员、教师和学生三大功能模块。管理员可进行系统全面管理,包括学生、教师、课程等信息的增删改查;教师能管理个人中心、课程及选课信息;学生则可管理个人中心及选课信息。技术框架采用Java编程语言,基于B/S架构,前端使用Vue+HTML+JavaScript+CSS+LayUI,后端采用SSM框架,数据库为MySQL。项目运行环境为JDK8+MySQL5.7+Tomcat8.5,支持远程调试安装。演示视频与详细文档截图均提供下载链接。
Redis批量查询的四种技巧,应对高并发场景的利器!
在高并发场景下,巧妙地利用缓存批量查询技巧能够显著提高系统性能。 在笔者看来,熟练掌握细粒度的缓存使用是每位架构师必备的技能。因此,在本文中,我们将深入探讨 Redis 中批量查询的一些技巧,希望能够给你带来一些启发。
324 23
Redis批量查询的四种技巧,应对高并发场景的利器!
Tair:基于KV缓存的推理加速服务
Tair 是阿里云基于KV缓存的推理加速服务,旨在优化大模型推理过程中的性能与资源利用。内容分为三部分:首先介绍大模型推理服务面临的挑战,如性能优化和服务化需求;其次讲解Nvidia TensorRT-LLM推理加速库的特点,包括高性能、功能丰富和开箱即用;最后重点介绍基于KVCache优化的推理加速服务,通过Tair的KV缓存技术提升推理效率,特别是在处理长上下文和多人对话场景中表现出色。整体方案结合了硬件加速与软件优化,实现了显著的性能提升和成本降低。
546 3
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
119 1
通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair
通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair
轻松学习阿里云原生内存数据库Tair
云原生数据库指的是基于云架构的云数据库,是一种云原生数据基础设施;是一种完全利用公有云优势的数据库服务;其本身匹配云环境和分布式事务,一般提供计算存储分离和日志即数据能力,其核心是存储与计算分离。具有弹性伸缩能力、无服务器(Serverless)、高性能、高可扩展、一致性、容错、易于管理和多云支持等特性。云原生数据库(Cloud-NativeDatabase)概念源于国外,随之受到国内厂商的关注,适用于软件工程、计算机、云计算等领域。
轻松学习阿里云原生内存数据库Tair
阿里云Redis与Tair压力测评
无意中发现阿里云开发社区的训练营活动,其中有一个7天玩转Redis、tair训练营计划,里面可以免费领取三个月的试用礼包,因为是参营任务,不领取都不行的那种,领取之后放着也是放着,不如跑跑数据看看Redis和Tair的性能有什么区别,简单的压力测试下,本次测试并不精确,也不具有太多参考意义,真的就是为了测试而测试。
354 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等