Redis生态 生态工具使用场景|上下游产品联动 --子塘-阿里云开发者社区

开发者社区> 阿里云数据库> 正文
登录阅读全文

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

简介: 内容简介: 一、Redis生态工具使用场景 1、迁移与同步 2、备份与恢复 3、数据管理 4、自治服务 二、上下游产品联动场景 1、Redis和数据库应用场景 2、Redis和大数据应用场景

内容简介:

一、Redis生态工具使用场景

1、迁移与同步

2、备份与恢复

3、数据管理

4、自治服务

二、上下游产品联动场景

1、Redis和数据库应用场景

2、Redis和大数据应用场景

 

(一)Redis生态工具使用场景

1、Redis生态工具总览

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

2、Redis-shake介绍

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

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可以实现的场景有上云迁移,实时同步,异地多活,缓存更新。

5、DTS支持Redis上云迁移

场景一:上云迁移

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

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

image.png

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

6、DTS支持Redis缓存更新

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

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

image.png

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

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

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

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

7、DTS支持Redis双向同步

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

使用DTS双向同步注意事项

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

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

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

8、DBS支持Redis备份恢复

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

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

image.png

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

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上下游产品联动使用场景

1、Redis与数据库RDS场景

云数据库RDS是关系型数据库的统称,包含MySQL、SQL Server、PostgreSQL、MariaDB四款产品。

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

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

image.png

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

image.png

2、Redis 数据库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

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

image.png

1、查询操作

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

2、添加操作 

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

2、修改操作

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

5、Redis与大数据应用Spark

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

基于以上的场景可以选择 spark和Redis来解决。

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

image.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云数据库
使用钉钉扫一扫加入圈子
+ 订阅

帮用户承担一切数据库风险,给您何止是安心!

官方博客
链接