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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 本文介绍了如何通过云端问道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 控制台,点击左侧资源站,点击上面地域选择杭州,点击第一个实例,进行删除,删除的方式,选择释放资源,确定,开始删除,等待删除完成后,就可以完成资源的释放,到这里我们的一键部署的视频讲解就完成了。

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

相关实践学习
使用操作系统智能助手OS Copilot解锁操作系统运维与编程
在本实验场景中,将在阿里云ECS上体验OS Copilot产品。OS Copilot是阿里云操作系统团队基于大模型构建的OS智能助手。它具有自然语言问答、辅助命令执行、系统运维调优等功能,帮助用户更好地使用Linux,提升阿里云的使用体验。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
5月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
622 25
|
6月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
312 1
Redis专题-实战篇二-商户查询缓存
|
5月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
1005 3
|
6月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
7月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
6月前
|
弹性计算 关系型数据库 数据库
云数据库RDS数据库迁移上云
阿里云RDS是一种安全稳定、高性价比的在线数据库服务,支持弹性伸缩,帮助用户轻松部署与扩展数据库。提供实例创建、白名单设置、数据库与账号管理、便捷连接等功能,简化运维操作,保障数据安全。
|
运维 数据库 数据库管理
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
209 3
|
Oracle 数据管理 关系型数据库
云数据库问题之云计算的普及化对中国数据库厂商的全球化发展有什么影响
云数据库问题之云计算的普及化对中国数据库厂商的全球化发展有什么影响
255 2
|
存储 人工智能 关系型数据库
云数据库是什么数据库?
云数据库是部署在云计算环境中的数据库服务,用户无需自行搭建硬件和软件环境,通过互联网即可便捷使用。相比传统数据库,云数据库降低了成本和使用门槛,具备强大的扩展性和灵活性,支持多种数据存储模型,并借鉴了关系型数据库的特性如ACID事务处理。它能够应对海量数据和高并发访问需求,适应数字化时代的挑战,未来还将融合更多新技术,进一步提升其功能和应用范围。
828 2

热门文章

最新文章