【Azure Redis 缓存】Azure Redis功能性讨论
关于使用Azure Redis服务在以下九大方面的功能性的解说:
- 高可用
- 备份可靠性
- 配置自动化
- 部署多样性
- 快速回档功能
- 数据扩容
- SLA稳定性
- 数据安全性
- 监控系统
一:高可用
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命令
可用于更新属性,例如 Size
、Sku
、EnableNonSslPort
和 RedisConfiguration
值。
#更新名为 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%
选项 | 说明 | 可用性 | 标准 | 高级 | 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 Redis:https://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 值的详细信息,请参阅 可用度量值和报告间隔。
【Azure Redis 缓存】Azure Redis功能性讨论的更多相关文章
- 【Azure Redis 缓存 Azure Cache For Redis】Azure Redis由低级别(C)升级到高级别(P)的步骤和注意事项, 及对用户现有应用的潜在影响,是否需要停机时间窗口,以及这个时间窗口需要多少的预估问题
问题描述 由于Azure Redis的性能在不同级别表现不同,当需要升级/缩放Redis的时候,从使用者的角度,需要知道有那些步骤? 注意事项? 潜在影响?停机事件窗口? 升级预估时间? 解决方案 从 ...
- 【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
问题描述 Azure Redis和所有的Redis服务一样,可以让你保留存储在Redis中的数据.以防万一在Redis服务器出现故障的时候能尽可能小的减少数据的损失.在Azure Redis服务中,默 ...
- 【Azure Redis 缓存 Azure Cache For Redis】Redis性能问题,发现Server Load非常的高,导致正常连接/操作不成功
问题描述 在正常使用Azure Redis的服务中,突然发现Redis 的CPU达到了100%, 正常的使用中发现性能问题严重.从Redis的门户图表中,观察到CPU, Connection,Lent ...
- 【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
当使用Azure Redis高级版时候,为了能更好的保护Redis的安全,启用了虚拟网路,把Redis集成在Azure中的虚拟网络,只能通过虚拟网络VENT中的资源进行访问,而公网是不可以访问的.但是 ...
- 【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
问题描述 关于Azure Redis的性能问题,在官方文档中,可以查看到不同层级Redis的最大连接数,每秒处理请求的性能. 基本缓存和标准缓存 C0 (250 MB) 缓存 - 最多支持 256 个 ...
- 【Azure Redis 缓存 Azure Cache For Redis】Redis连接池
问题描述 Redis根据定价层说明,不同级别支持的连接数最多可达4万(同时),但是当短时间又大量连接请求建立的时候,Redis服务的服务压力非常大,到达100%.严重影响了高响应的要求.最严重时,经常 ...
- 【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常
问题描述 在使用Azure Redis时,遇见Read Timed out异常, Redis的客户端使用的时jedis.问题发生时,执行redis部分指令出错,大部分get指令,set指令能正常执行. ...
- 【Azure Redis 缓存 Azure Cache For Redis】当使用Jedis客户端连接Redis时候,遇见JedisConnectionException: Could not get a resource from the pool / Redis connection lost
问题情形 当在执行Redis一直指令时,有可能会遇见如下几种错误: 1) redis.clients.jedis.exceptions.JedisConnectionException: Could ...
- Azure Redis 缓存使用注意事项与排查问题文档整理
StackExchange.Redis 使用名为 synctimeout 的配置设置进行同步操作,该设置的默认值为 1000 毫秒. 如果同步调用未在规定时间内完成,StackExchange.Red ...
- [转]在nodejs使用Redis缓存和查询数据及Session持久化(Express)
本文转自:https://blog.csdn.net/wellway/article/details/76176760 在之前的这篇文章 在ExpressJS(NodeJS)中设置二级域名跨域共享Co ...
随机推荐
- 第七篇 Scrum 冲刺博客
一.站立式会议 1. 会议照片 2. 工作汇报 团队成员名称 昨日完成的工作 今天计划完成的工作 工作中遇到的困难 陈锐基 - 封装消息组件- 我的关注和我的粉丝页面布局- 强化表白墙组件并和详情页对 ...
- XJOI contest 1592
首先 热烈庆祝"CSP-S 2020全国开放赛前冲刺模拟训练题2"圆满结束!!! 感谢大毒瘤颗粒囊的题目.题目还是很不错的,部分分设置的不合理,各种神仙随便 AK ,蒟蒻只能爆零. ...
- SP7022 CPATTERN - Cow Patterns
本篇题解用于作者本人加深理解,也欢迎大家阅读. 这道题的正解是\(KMP\)加上树状数组,记录每一个位置前几个位置比其小的.相等的.大的数的数量,比较方式便是比较相应的数量,若相等,则匹配成功. 但是 ...
- (数据科学学习手札100)搞定matplotlib中的字体设置
本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 matplotlib作为数据可视化的利器,被广泛 ...
- 最详细Python批量字典暴力破解zip密码
工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...
- monkey 基本用法
monkey测试步骤: 一.使用模拟机 1.安装好虚拟机,比如说天天模拟机.夜神模拟机.雷神模拟机 2.将需要测试的APK装在虚拟机上 3.cmd>adb shell 连接模拟机 4.输入命令m ...
- Wordpress Polylang 翻译自定义格式
WordPress 多语言插件 Polylang 主题函数参考 重要:使用一个函数之前,你必须检查函数是否存在,否则,你的网站可能会在 Polylang 更新之前遇到致命错误(因为 WordPress ...
- javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...
- pytorch固定BN层参数
背景:基于PyTorch的模型,想固定主分支参数,只训练子分支,结果发现在不同epoch相同的测试数据经过主分支输出的结果不同. 原因:未固定主分支BN层中的running_mean和running_ ...
- Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析
重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...