Redis生态 生态工具使用场景|上下游产品联动 --子塘

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 内容简介:一、Redis生态工具使用场景1、迁移与同步2、备份与恢复3、数据管理4、自治服务二、上下游产品联动场景1、Redis和数据库应用场景2、Redis和大数据应用场景

内容简介:

一、Redis生态工具使用场景

1、迁移与同步

2、备份与恢复

3、数据管理

4、自治服务

二、上下游产品联动场景

1Redis和数据库应用场景

2Redis和大数据应用场景

 

()Redis生态工具使用场景

1Redis生态工具总览

Redis的生态工具分为两类,第一类是自研Redis工具包Redis-shake,可以实现Redis解析、备份、恢复和同步;第二类是阿里云数据库团队提供的成熟的生态工具产品,包含4个产品,DTS支持Redis的迁移与同步,DMS支持Redis数据管理,DBS支持Redis的备份与恢复,DAS支持Redis的自治服务。

2、Redis-shake介绍

Redis-shake是阿里云自研的开源Redis数据传输工具,支持对Redis数据进行解析(decode)、恢复 (restore)、备份(dump)和同步(syncrump),易于部署,灵活高效。

Redis-shake功能:

Ø  上云迁移

支持自建Redis迁移、云数据库Redis迁移,以及其他云Redis迁移至阿里云。

Ø  备份恢复

备份的过程是将云数据库Redis版实例中的数据备份到RDB文件中,恢复的过程是将Redis的备份文件内的数据迁移到原数据库Redis实例中完成恢复。

Ø  单向同步

支持自建Redis之间的同步,也可以支持自建Redis与云数据库Redis之间的同步。

3.Redis-shake支持Redis迁移与同步

Redis-shake最基本也是最重要的能力,是支持Redis的迁移与同步。Redis shake的同步模式,可支持Redis-shake全量数据迁移和增量数据迁移,下图是Redis shake,支持Redis迁移同步的工作原理。

image.png

首先Redis-shake向原Redis数据库发送同步请求,原Redis数据库发送rdb文件,并写入到目标Redis数据库中,在全量数据迁移结束后,开始进行增量数据迁移,以上是对Redis shake工具的介绍。

4、数据传输DTS介绍

数据传输DTS是阿里云提供的生态工具产品。可以在公共云、混合云场景下,解决远距离、毫秒级异步数据传输难题。它底层的数据流基础设施为阿里双11异地多活基础架构,为数千下游应用提供实时数据流,已在线上稳定运行6年之久。

Redis通过DTS可以实现的场景有上云迁移,实时同步,异地多活,缓存更新。

5DTS支持Redis上云迁移

场景一:上云迁移

DTS支持Redis的上云迁移,相比于传统迁移方式来说,传统的迁移方式要求在数据迁移期间,停止向源数据库写入数据,即需要停机迁移,来保障数据的一致性,根据数据量和网络的情况,迁移所耗费的时间可能会持续数小时甚至数天,对业务影响较大。

DTS可以提供不停机迁移的解决方案,只有当业务从源实例切换到目标实例期间会影响业务,其他时间业务均能正常提供服务,将停机时间降低到分钟级别。

image.png

上图是DTS支持数据迁移的原理图,Redis数据库没有结构迁移部分,只有全量数据迁移和增量数据迁移两部分。首先对原数据库进行全量数据迁移,全量数据迁移启动的同时,增量数据迁移也要启动,开始增量数据的拉取,在全量数据迁移结束之后,开始增量数据的回放,等到源库和目标库的数据基本同步之后,进行数据库的切换,切换以后业务应用就可以在新的目标库上进行读写,以上是DTS支持Redis上云迁移的场景。

6DTS支持Redis缓存更新

Redis经常会作为应用和关系型数据库的缓存使用,目的是为了提高业务的访问速度,提升业务的读并发。

DTS 提供了数据订阅的功能,可以异步订阅数据库的增量数据,更新缓存的数据,实现轻量级的缓存更新。

image.png

通过DTS订阅实现缓存更新的优势:

1、更新路径短,业务完成更新数据库后直接返回,不需要关心缓存失效流程,延迟低。

2、应用简单可靠,应用无需实现复杂双写逻辑,只需启动异步线程监听增量数据,更新缓存数据即可。

3、应用更新无额外性能消耗,数据订阅通过解析数据库的增量日志来获取增量数据,不会对业务和数据库性能造成影响。

7DTS支持Redis双向同步

DTS可以支持Redis企业版实例间的双向同步,适用于异地多活数据容灾等应用场景,可以实现业务的就近读写,减少访问延迟。最典型的场景,比如游戏类的应用,可以实现就近开服。

使用DTS双向同步注意事项

1、双向数据同步时,正向数据同步作业会执行全量数据初始化和增量数据同步 ,反向数据同步作业仅执行增量数据同步。

2、为保障数据一致性,双向数据同步作业运行期间,请勿在两端数据库同时对同一个key执行修改或写入操作。

综上所述,也就是在应用上要对数据进行分片。

8DBS支持Redis备份恢复

数据库备份DBS是阿里云提供的低成本、高可靠的云原生数据库备份平台。DBS通过数据库日志解析同 步技术完成备份恢复,业务RPO/RTO可达秒级。 DBS支持文件、日志、数据库等全站备份,支持本地数据中心、其他云厂商、ECS数据库及云数据库等环境,是企业级混合云统一备份平台。

基于DBS Redis可以实现混合云备份和容灾备份,混合云备份无论Redis是在阿里云其他云或者本地数据中心,均可以是通过DBS实现统一的数据库备份。

image.png

容灾备份,通过DBSRedis进行备份,可以符合一定等级的等保合规要求。

9、通过DMS管理Redis

DMS也是阿里云提供的生态工具产品,可以便捷地管理Redis数据库,支持通过命令或界面来操作数据,同时支持更多扩展功能,比如操作审计功能,通过DMS操作的所有记录都可以被追溯。

DMS支持Redis、语法,除了开源Redis的语法之外,还支持阿里云Redis企业版的语法,Tair的语法。

image.png10、通过DMS实现人员数据安全

数据管理DMS企业版,为企业的客户提供了数据安全解决方案,包含权限管控、数据管控、变更管控.

【权限安全】通过DMS安全协同可控制DB级、key级的权限 。

【数据安全】每人每天查询的次数可按需进行管控,管理员可按需调整,避免过多数据的接触 。

【变更安全】支持对非只读的更新操作进行安全管控,可将更新操作限制需要工单指定人员审批后执行,对高危操作可禁止提交执行。

通过DMS提供的授权管理方式,如下图所示。

image.png


首先企业中不同角色的人员根据各自需求进行权限的申请,DMS有统一的授权管理体系,包含离职转岗账号回收,key级别的权限管控,面向个人云账号,权限过期的提醒等,最终通过授权给DMS使用的账号,均可以进行相应粒度的权限的赋权。

11、通过DAS实现Redis自治服务

数据自治服务DAS是阿里云提供的生态工具产品。基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务。帮助用户消除数据库管理的复杂性及人工操作引发的服务故障,有效保障数据库服务的稳定、安全及高效。

通过DAS实现Redis的监控大盘、巡检评分和AutoScaling三个能力,监控大盘可以实现多实例的同时监控,指标异动一目了然;巡检评分可以对实例进行健康度进行综合评分,重点治理得分低的实例;AutoScaling可以实现自动弹性扩缩容,应对业务高峰。

image.png

演示;

通过DAS实现Redis自治服务的使用方式,下图是数据库自治服务的控制台。左侧可以看到监控大盘,在监控大盘里找到Redis,如选一个已经创建的监控大盘,在这里可以看到多个实例,同维度的一个曲线图。如何创建监控大盘,点击新增监控大盘,命名后,选择你要监控的实例,然后在选择想要监控的指标,选择好后就可以在这里看到Redis的监控大盘。

image.png

image.pngimage.png

image.png

image.pngimage.png

Redis的实例的巡检得分,如下图所示巡检评分可以看到所有实例的评分,如这里有扣分详情,当前这个实例是没有扣分的,有实例的评分报告。

image.pngimage.png

image.png

然后再看一下AutoScaling的功能,弹性扩缩容的功能,现只对云盘社区版进行提供。

image.png

下图所示,在实例详情内,自制中心中可以通过自制功能开关进行开启,开启自助服务后点击自动扩容,可以设置根据业务的情况设置阈值,在阈值设定了之后,如果业务达到预值之后,就会自动的向上扩容。

image.png

image.png

image.pngimage.png

image.png(二)Redis上下游产品联动使用场景

1Redis与数据库RDS场景

云数据库RDS是关系型数据库的统称,包含MySQLSQL ServerPostgreSQLMariaDB四款产品。

Redis以关系型数据库结合的场景,最经典的场景就是Redis类型词作为数据库的缓存使用,Redis 作为底层数据库的缓存,可以有效降低数据响应时间,提高吞吐量和并发处理能力,降低后端数据库负载,提升整体业务处理性能。

下图的架构是互联网行业最经典的架构,缓存数据可以持久化,并且提高高可用架构,满足业务可用性和数据可靠性的要求。

image.png

Redis会话缓存场景,利用Redis会话缓存,用户偏好设置等信息可以实现快速认证,降低对后端数据库的访问。

image.png

2Redis 数据库vs缓存

Redis在某些场景中既可以作为数据库使用,也可以作为缓存使用,在业务中可以根据各自的需要去决定Redis的使用方式,如在游戏场景,Redis可以直接作为数据库使用,游戏部署架构相对简单,Redis作为存储数据库使用,主程序部署在ecs上,所有业务数据存储在Redis中作为持久化的数据库使用,Redis也可以作为缓存去使用,加速应用访问,数据存储还是存储在后端的RDS数据库中。

电商行业秒杀类的购物系统,大型的促销等,整体访问压力非常大,Redis支持持久化功能,可以直接选择Redis作为数据库系统的使用,除了秒杀秒杀场景外,电商行业中在商品展示购物推荐的模块也会用到Redis.

Redis作为缓存使用,如技术系统的库存系统底层,用rds存储具体数据信息,数据库字段中存储具体技术信息,云数据库Redis版,用来进行计数的读取 RDS存储寄宿信息。

3、将MySQL数据迁移到Redis

Redis作为缓存,首先要将关系型数据库中的数据迁移到Redis中。关系型数据库中库表结构的数据无法 直接传入以键值结构保存数据的Redis数据库,迁移前需要将源端数据转换为特定的结构。

迁移场景:

阿里云RDS MySQL实例和云数据库Redis版实例作为迁移的源端和目的端,运行迁移命令的Linux环境 安装在ECS实例中,在ecs中进行。

下图所示,第一张图是迁移前的数据,迁移前的数据是放在MySQL中的结构化的数据,在迁移之后需要转换成 kv结构的数据,因此可以根据业务的情况选择一个列数据作为key,如选择用户的ID作为key的结构,在买MySQL的数据迁移到Redis之后,可以就可以进行正常的业务应用访问。

image.png

4Redis与数据库rds的增删改操作

image.png

1、查询操作

前端发来请求时,先进行缓存的查询,如果缓存存在要查询的数据,则返回。否则去数据库 中查询,并添加到缓存中,再返回数据,这样 在下次查询时,便可直接从缓存中取。

2、添加操作  

添加操作直接添加到数据库即可,也可以在添加到缓存的同时添加到数据库。但在数据量较大时,推荐 的做法是先将数据添加到缓存,在另一个线程中将数据同步到数据库。

2、修改操作

修改操作先修改数据库,再将缓存的数据删除即可。

5Redis与大数据应用Spark

Spark是专门为大规模数据处理而设计的快速通用的计算引擎,有非常广泛的生态,如广告公司在网页上投递动态的图片广告,广告的展示形式是根据热点图片动态生成的,为了达到收益的最大化,需要统计广告的点击数来决定哪些广告可以继续投放,哪些广告需要更换。

基于以上的场景可以选择 sparkRedis来解决。

首先用户的点击数据进行提取,通过Redis进行处理,数据到 spark中进行流数据的处理,并进行一定计算,Etl等操作完成处理以后,再通过Redis在应用端进行展现。

image.png


相关实践学习
基于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
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
|
2月前
|
消息中间件 存储 NoSQL
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
本文档介绍了如何使用 Go 语言中的 `go-redis` 库操作 Redis 数据库
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
|
2月前
|
NoSQL 数据可视化 Linux
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
这篇文章提供了在CentOS 7上安装Redis的详细步骤,包括上传Redis安装包、解压安装、编译、安装、备份配置文件、修改配置以支持后台运行和设置密码、启动Redis服务、使用客户端连接Redis、关闭Redis服务、解决Redis Desktop Manager图形化工具连接失败的问题、设置Redis开机自启动,以及Redis服务的启动和停止命令。
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
|
3月前
|
canal 缓存 NoSQL
Redis常见面试题(一):Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;先删除缓存还是先修改数据库,双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
Redis常见面试题(一):Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
|
2月前
|
存储 监控 NoSQL
揭秘Redis慢查询:这个工具将彻底改变你的性能优化策略!
【8月更文挑战第8天】在互联网应用中,数据库性能常成瓶颈。Redis作为高速内存数据库亦可能遭遇慢查询问题。本文探讨慢查询成因与解决方法。首先定义慢查询及其影响因素,随后介绍Redis内置的慢查询日志功能,通过配置`slowlog-log-slower-than`与`slowlog-max-len`来监控执行时间过长的命令。利用`SLOWLOG get`命令分析日志,定位性能瓶颈所在。以`LRANGE`命令为例,提出数据结构调整、使用流水线、限制返回元素数量、异步执行及优化内存使用等策略。最终实现Redis性能提升,确保应用流畅运行。性能优化需持续监控、分析与调整。
63 1
|
3月前
|
缓存 NoSQL Serverless
函数计算产品使用问题之如何使用Redis作为缓存插件
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
103 8
|
2月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
|
2月前
|
NoSQL 数据可视化 Linux
一文教会你如何在Linux系统中使用Docker安装Redis 、以及如何使用可视化工具连接【详细过程+图解】
这篇文章详细介绍了如何在Linux系统中使用Docker安装Redis,并提供了使用可视化工具连接Redis的步骤。内容包括安装Redis镜像、创建外部配置文件、映射文件和端口、启动和测试Redis实例、配置数据持久化存储,以及使用可视化工具连接和操作Redis数据库的过程。
|
3月前
|
存储 NoSQL Redis
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
介绍一个简单的工具,用于将Redis数据从一个redis端点复制到另一个redis端点,基于原始存储库转换为.NET 8:https://github.com/LuBu0505/redis-copy-net8
|
3月前
|
开发框架 运维 NoSQL
函数计算产品使用问题之如何通过内网连接Redis,并开放白名单
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

相关产品

  • 云数据库 Tair(兼容 Redis)
  • 下一篇
    无影云桌面