【Azure Redis 缓存】Azure Redis功能性讨论

简介: 【Azure Redis 缓存】Azure Redis功能性讨论

关于使用Azure Redis服务在以下九大方面的功能性的解说:

  1. 高可用
  2. 备份可靠性
  3. 配置自动化
  4. 部署多样性
  5. 快速回档功能
  6. 数据扩容
  7. SLA稳定性
  8. 数据安全性
  9. 监控系统

 

一:高可用

Azure Cache for Redis 具有内置的高可用性。 其高可用性体系结构的目标是确保托管的 Redis 实例正常运行,即使其基础虚拟机 (VM) 受计划内或计划外中断的影响。 它提供的可用性百分比率要远高于将 Redis 承载在单个 VM 上的情况。使用多个称为“节点”的用于缓存的 VM 来实现高可用性。 它将这些节点配置为以协调的方式进行数据复制和故障转移。 它还会协调维护操作,例如 Redis 升级维护等。

默认情况下,在“标准”或“高级”层级中,Azure Cache for Redis 在一对 Redis 服务器上运行。 这两个服务器托管在专用 VM 上。 开源 Redis 只允许一台服务器处理数据写入请求。 此服务器是主要节点,而另一服务器是副本。 预配服务器节点后,Azure Cache for Redis 可向其分配主要角色和副本角色。 主要节点通常负责为来自 Redis 客户端的写入和读取请求提供服务。

 

 

更多详细说明,请见:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-high-availability

通常,Redis 客户端会与 Redis 缓存中的主节点通信,以获取所有读取和写入请求。 某些 Redis 客户端可以配置为从副本节点进行读取。

 

二:备份可靠性

Redis 暂留可让你保留存储在 Redis 中的数据。 还可以获取快照并备份数据,以便在出现硬件故障时进行加载。保存数据时,Azure 存储会自动加密数据。 支持自动备份和手动备份,备份存放在共享存储上,不占用本地磁盘空间;可以参考 https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence

Azure Redis 缓存使用以下模型提供 Redis 暂留:

  • RDB 暂留 - 配置 RDB(Redis 数据库)暂留以后,Azure Redis 缓存按照可配置的备份频率,将 Azure Redis 缓存的快照以 Redis 二进制格式暂留在磁盘上。 如果发生了灾难性事件,导致主缓存和副缓存都无法使用,则会使用最新快照重新构造缓存。 详细了解 RDB 暂留的优点缺点
  • AOF 暂留 - 配置 AOF(仅追加文件)暂留后,Azure Redis 缓存将每个写入操作保存到日志,此日志每秒至少保存到 Microsoft Azure 存储帐户一次。 如果发生了灾难性事件,导致主缓存和副缓存都无法使用,则会使用存储的写入操作重新构造缓存。 详细了解 AOF 暂留的优点缺点

 

三:配置自动化

可使用PowerShell脚本一键式创建数据库实例:

#创建名为 myCache  Azure Redis 
New-AzRedisCache -ResourceGroupName myGroup -Name mycache -Location "China North"

Set-AzRedisCache命令可用于更新属性,例如 SizeSkuEnableNonSslPortRedisConfiguration 值。

#更新名为 myCache  Azure Redis 缓存的 maxmemory-policy
Set-AzRedisCache -ResourceGroupName "myGroup" -Name "myCache" -RedisConfiguration @{"maxmemory-policy" = "allkeys-random"}

可自定义数据库多种配置参数,但需要自己编写相应代码和脚本,参考文档:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-manage-redis-cache-powershell

 

四:部署多样性

Azure Redis提供不同的级别:

  • 基本:基本缓存是单个缓存节点,适用于开发/测试和非关键型工作负荷。
  • 标准:基于主/从复制的生产级别缓存服务。
  • 高级:适合企业的级别,可用作缓存和暂留数据。专为最大规模和企业集成而设计。

标准版支持主从,高级版支持主从/集群方式部署。参考文档:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-clustering

什么是 Redis 群集?

Azure Redis 缓存提供的 Redis 群集与 在 Redis 中实施的一样。 Redis 群集具有以下优势:

  • 能够在多个节点中自动拆分数据集。
  • 能够在部分节点遇到故障或无法与群集其余部分通信的情况下继续运行。
  • 更大的吞吐量:增加分片数时,吞吐量呈线性增加。
  • 更大的内存大小:增加分片数时,内存大小呈线性增加。

 

五:快速回档功能

启用Redis数据暂留后,支持自动备份和数据恢复。Redis可以自动获取快照并备份数据,以便在出现硬件故障时进行加载。

导入/导出是一种 Azure Redis 缓存数据管理操作,可用于通过从高级缓存导入 Azure Redis 缓存数据库 (RDB) 快照以及将 Azure Redis 缓存数据库 (RDB) 快照导出到 Azure 存储帐户中的 blob 来相应地将数据导入到 Azure Redis 缓存以及从 Azure Redis 缓存导出数据。

  • 导出 - 可以将 Azure Redis 缓存 RDB 快照导出到页 Blob。
  • 导入 - 可以从页 Blob 或块 Blob 导入 Azure Redis 缓存 RDB 快照。

通过导入/导出可在不同的 Azure Redis 缓存实例之间进行迁移,或者在使用之前使用数据填充缓存。参考文档:

如何为高级 Azure Redis 缓存配置数据暂留https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence

在 Azure Redis 缓存中导入和导出数据https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-import-export-data

 

六:数据扩容

Azure Redis 缓存具有不同的缓存产品/服务,使缓存大小和功能的选择更加灵活。 如果创建缓存后,应用程序的要求发生更改,可以更改缓存的大小和定价层。支持按需扩容,包括但不限于数据容量、可读实例和副本数量;支持无缝扩容,可不中断服务,对上层业务透明。

可以扩展到不同定价层,但有以下限制:

  • 不能从较高的定价层缩放到较低的定价层。
  • 不能从高级缓存向下缩放到标准或基本缓存。
  • 不能从标准缓存向下缩放到基本缓存。
  • 可从基本缓存缩放到标准缓存,但不能同时更改大小。 如果需要不同大小,则可以执行后续缩放操作以缩放为所需大小。
  • 不能从基本缓存直接缩放到高级缓存。 首先在一个缩放操作中从基本缩放到标准,然后在后续的缩放操作中从标准缩放到高级。
  • 不能从较大的大小减小为 C0 (250 MB) 。

在缩放过程中,缓存是否可用?

  • 标准和高级缓存在缩放操作期间保持可用。 但是,缩放标准和高级缓存时,以及从基本缓存缩放到标准缓存时,可能会发生连接故障。 这些连接故障预期为很小的故障,redis 客户端应能立即重新建立连接。
  • 基本缓存在缩放为不同大小的操作期间处于脱机状态。 基本缓存在从基本缩放到标准时仍然可用,但可能会出现较小的连接故障。 如果发生连接故障,redis 客户端应能立即重新建立连接。

详细操作请见:如何缩放 Azure Redis 缓存

 

七:SLA稳定性

支持主从和集群架构,自动进行容灾切换和故障迁移;可用性保障不低于99.9% --基础版没有SLA保证,其他版本都不低于99.9%

AZURE CACHE FOR REDIS 的高可用性

选项 说明 可用性 标准 高级 Enterprise
标准复制 单个数据中心或可用性区域 (AZ) 中具有自动故障转移功能的双节点复制配置 99.9%

-

Enterprise 群集 链接了两个区域中的缓存实例,提供自动故障转移 99.9% - -

异地复制 两个区域中的链接缓存实例,具有用户控制的故障转移 99.9%(对于单个区域) -

-

Azure Cache for Redis 的高可用性: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-high-availability

 

八:数据安全性

Azure底层有相关的安全防护确保数据的存储安全,而在传输方面,默认使用SSL访问(6380)使用TLS1.2加密套件保证在数据传输中的安全。同时也可以隔离Redis,通过专用链接或VNET来实现网络隔离:Azure 专用链接和虚拟网络 (VNET) 部署为 Azure Cache for Redis 提供增强的安全性和流量隔离。 使用 VNET,可以进一步通过网络访问控制策略来限制访问。

Azure 专用链接的 Azure Cache for Redishttps://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-private-link

为高级 Azure Cache for Redis 配置虚拟网络支持https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-vnet

 

九:监控系统

支持对Redis实例信息的可视化监控(监控内容包括但不限于CPU利用率、连接数、Memory等),可以根据指标配置相应的警报:

 

如何监视用于 Redis 的 Azure 缓存: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-monitor

 

用于 Redis 的 Azure 缓存使用 Azure Monitor 提供用于监视缓存实例的几个选项。 可以查看度量值、将度量值图表固定到启动板、自定义监视图表的日期和时间范围、在图表中添加和删除度量值,以及设置符合特定条件时发出的警报。 借助这些工具,可以监视 Azure Redis 缓存实例的运行状况,以及管理缓存应用程序。

每分钟使用 Redis INFO 命令收集约两次用于 Redis 的 Azure 缓存实例的指标,然后将其自动存储 30 天(请参阅导出缓存指标以配置不同保留期策略),以便这些指标可以显示在指标图表中并由预警规则进行评估。 有关用于每个缓存度量值的不同 INFO 值的详细信息,请参阅 可用度量值和报告间隔

相关文章
|
8月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
3月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
4月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
231 1
Redis专题-实战篇二-商户查询缓存
|
3月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
|
4月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
5月前
|
存储 NoSQL Redis
采用Redis的Bitmaps实现类似Github连续提交状态的功能。
在现实世界的应用开发中,实现类似于Github提交跟踪系统时,还可能需要考虑用户时区、闰年等日期相关的边界条件,以及辅助数据的存储和查询优化,例如对活跃用户的即时查询和统计等。不过这些都可以在Bitmaps的基础功能之上通过额外的代码逻辑来实现。
123 0
|
8月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
1131 0
|
8月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
271 32
|
8月前
|
缓存 NoSQL Java
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
222 5
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
|
10月前
|
缓存 NoSQL Java
Redis应用—8.相关的缓存框架
本文介绍了Ehcache和Guava Cache两个缓存框架及其使用方法,以及如何自定义缓存。主要内容包括:Ehcache缓存框架、Guava Cache缓存框架、自定义缓存。总结:Ehcache适合用作本地缓存或与Redis结合使用,Guava Cache则提供了更灵活的缓存管理和更高的并发性能。自定义缓存可以根据具体需求选择不同的数据结构和引用类型来实现特定的缓存策略。
631 16
Redis应用—8.相关的缓存框架