你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何配置 Azure 托管 Redis(预览版)

本文介绍可用于 Azure 托管 Redis(预览版)实例的配置。 本文还将介绍适用于 Azure 托管 Redis 实例的默认 Redis 服务器配置

配置 Azure 托管 Redis 设置

可使用“资源菜单” 查看和配置以下设置。

概述

概述”部分提供有关实例的基本信息,如名称、终结点、定价层、模块、异地复制状态和所选缓存指标。

活动日志

选择“活动日志”查看对缓存执行的操作。 也可以使用筛选来展开此视图,以包含其他资源。 有关如何使用审核日志的详细信息,请参阅使用资源管理器审核操作。 有关监视活动日志的详细信息,请参阅 Azure日志

访问控制 (IAM)

“访问控制 (IAM)”部分在 Azure 门户中为 Azure 基于角色的访问控制 (Azure RBAC) 提供支持。 此配置有助于组织轻松准确地满足其访问管理要求。 有关详细信息,请参阅 Azure 门户中 Azure 基于角色的访问控制

标记

“标记” 部分可帮助用户整理资源。 有关详细信息,请参阅使用标记来组织 Azure 资源

诊断并解决问题

选择“诊断并解决问题”可显示常见问题和用于解决这些问题的策略。

Redis 控制台

Azure 托管 Redis 尚不支持直接访问 Redis 控制台。 相反,请考虑使用 Redis CLIRedis Insight 等工具。

将缓存移动到新的订阅

可以选择“移动”,将缓存移到新的订阅。

移动 Azure 托管 Redis

有关在资源组之间以及订阅之间移动资源的信息,请参阅将资源移到新的资源组或订阅

设置

“设置” 部分用于访问和配置缓存的下列设置。

身份验证

有两个选项用于身份验证:访问密钥和 Microsoft Entra 身份验证。 建议使用 Microsoft Entra 身份验证,因为它更安全。

选择“访问密钥”以查看或重新生成缓存访问密钥。 这些密钥由连接到缓存的客户端使用。

显示“资源”菜单中选中了“身份验证”,以及“工作”窗格中选中了访问密钥的屏幕截图。

高级设置

以下设置是在左侧的“高级设置”上配置的。

访问端口

默认情况下,仅为新缓存启用了 TLS 访问。 若要启用非 TLS 访问,请为“仅限非 TLS 访问”选择“启用”,然后选择“保存”。

注意

Azure 托管 Redis 支持 TLS 1.2 和 1.3。 有关更多详细信息,请参阅 TLS 协议的配置设置是什么?

内存策略

创建缓存时,大约 20% 的实例内存会保留为复制和其他系统进程的内存缓冲区。 这有助于实例更有效地运行。

逐出策略”用于为缓存配置逐出策略,并允许你从以下逐出策略中进行选择:

  • volatile-lru:默认逐出策略。 它删除含过期设置的所有密钥中最近很少使用的密钥。
  • allkeys-lru:删除最近很少使用的密钥。
  • volatile-random:删除含过期设置的随机密钥。
  • allkeys-random:删除一个随机密钥。
  • volatile-ttl:删除基于其过期设置将最快过期的密钥。
  • noeviction:无逐出策略。 如果尝试插入数据,则返回一条错误消息。
  • volatile-lfu:从设置了过期字段的所有密钥中删除最不常用的密钥。
  • allkeys-lfu:从所有密钥中删除最不常用的密钥。

有关详细信息,请参阅逐出策略

Keyspace 通知

Redis keyspace 通知是使用“notify-keyspace-events”框配置的。 密钥空间通知让客户端能够在发生特定事件时接收通知。 Keyspace 通知可用于根据 Redis 实例上的活动来触发 Azure Functions

有关详细信息,请参阅 Redis Keyspace Notifications(Redis 密钥空间通知)。

数据持久性

数据暂留”允许你为 Redis 实例启用、禁用或配置数据暂留。 Azure 托管 Redis 通过 RDB 暂留或 AOF 暂留来提供 Redis 暂留。

有关详细信息,请参阅为 Azure 托管 Redis 实例配置数据暂留

加密

选择“加密”以加密磁盘上存储的任何数据,例如数据暂留文件或从实例导出的文件。 有关详细信息,请参阅使用客户管理的密钥为 Azure 托管 Redis 实例配置磁盘加密

活动异地复制

“资源”菜单上的“活动异地复制”提供了一种机制,用于在主动-主动配置中链接最多 5 个 Azure 托管 Redis 实例。 此功能可用于跨 Azure 区域复制缓存,从而提供更高的数据持续性和可用性。 有关详细信息,请参阅为 Azure 托管 Redis 实例配置活动异地复制

缩放

选择“缩放”以查看或更改 Redis 实例的大小和性能层。 有关缩放的详细信息,请参阅如何缩放 Azure 托管 Redis

计划更新

Azure 托管 Redis 中尚不提供计划更新。

属性

选择“属性”可查看有关实例的信息,包括终结点、Redis DB 版本和群集策略。

锁定

“锁定” 部分可用来锁定订阅、资源组或资源,以防止组织中的其他用户意外删除或修改关键资源。 更多信息请参阅 使用 Azure Resource Manager 锁定资源

管理

管理”部分用于访问和配置 Redis 实例的下列设置:

导入/导出

导入/导出是一项 Azure 托管 Redis 数据管理操作,可用于在 Redis 实例中导入和导出数据。 可以在 Azure 存储帐户中导入和导出 Redis 数据库 (RDB) 快照。 使用导入/导出在不同的 Azure 托管 Cache 实例之间进行迁移,或者在使用之前使用数据填充缓存。

你能够从几乎可在任何云或环境中运行的 Redis 服务器导入 Redis 兼容的 RDB 文件,包括:

  • 在 VM 或容器上运行的 Redis
  • 云提供商,如 Amazon Web Services 或其他提供商

导入数据是使用预先填充的数据创建缓存的一种简单方式。 在导入过程中,Azure 托管 Redis 会将 Azure 存储中的 RDB 文件加载到内存中,再将密钥插入到缓存中。

可以使用导出功能将 Azure 托管 Redis 中存储的数据导出到 Redis 兼容的 RDB 文件。 可以使用此功能将一个 Azure 托管 Redis 实例中的数据移到另一个 Azure 托管 Redis 实例或另一个 Redis 服务器。 在导出过程中,会在托管 Azure 托管 Redis 实例的 VM 上创建临时文件。 临时文件将上传到指定的存储帐户。 导出操作完成后,无论状态为成功还是失败,都会删除临时文件。

有关详细信息和说明,请参阅在 Azure 托管 Redis 中导入和导出数据

专用终结点

专用终结点”部分用于配置实例的专用终结点设置。 建议对所有生产工作负载使用专用终结点。

有关详细信息,请参阅使用 Azure 专用链接的 Azure Cache for Redis

监视

监视”部分用于配置 Azure 托管 Redis 实例的诊断和监视。

警报

选择“警报”可基于 Azure 托管 Redis 指标配置警报。 有关详细信息,请参阅创建警报

指标

选择“指标”以创建你自己的自定义图表,用于跟踪要查看的缓存指标。 有关详细信息,请参阅创建自己的指标

顾问建议

“顾问建议”显示适用于缓存的建议。 在正常操作期间,不会显示任何建议。

显示顾问建议显示位置但没有当前建议的屏幕截图。

如果在缓存操作期间发生任何状况,例如即将发生的更改、高内存使用率、网络带宽或服务器负载,则“资源”菜单的“概述”中会显示警报。

显示在“资源”菜单中选择“概述”时警报的显示位置的屏幕截图。

可在 Azure 门户工作窗格中的“建议”上找到更多信息。

显示顾问建议的屏幕截图

诊断设置 - 指标

默认情况下,Azure Monitor 中的缓存指标将存储 30 天,然后被删除。 若要将缓存指标保存 30 天以上,请选择“诊断设置 - 指标”以配置存储帐户(用于存储缓存诊断数据)。

注意

除了将缓存指标存档到存储中外,还可以将其流式传输到事件中心或将其发送到 Azure Monitor 日志

诊断设置 - 审核

使用“诊断设置 - 审核”记录与 Azure 托管 Redis 实例建立的连接,包括成功和失败的连接尝试。 有关详细信息,请参阅使用诊断设置监视 Azure 托管 Redis 数据

自动化

Azure 自动化提供基于云的自动化、操作系统更新和配置服务,用于支持 Azure 环境和非 Azure 环境之间的一致管理。

任务

选择“任务”以帮助你更轻松地管理 Azure 托管 Redis 资源。 这些任务的数量和可用性因资源类型而异。 目前,只能在预览时使用“发送每月资源成本”模板来创建任务。

有关详细信息,请参阅通过创建自动化任务来管理 Azure 资源和监视成本

导出模板

选择“导出模板”可生成并导出已部署资源的模板供将来部署。 有关使用模板的详细信息,请参阅使用 Azure Resource Manager 模板部署资源

帮助

帮助”部分中的设置提供了用于解决缓存问题的选项。

资源运行状况

“资源运行状况” 会监视资源,并告知资源是否按预期运行。 Azure 托管 Redis 尚不支持资源运行状况。 有关 Azure 资源运行状况服务的详细信息,请参阅 Azure 资源运行状况概述

支持和故障排除

选择“支持 + 故障排除”可建立缓存的支持请求。

其他配置信息

默认 Redis 服务器配置

新的 Azure 托管 Redis 实例已配置以下默认 Redis 配置值:

设置 默认值 说明
maxclients 取决于定价层2 该值是同一时间内允许的最大已连接客户端数。 一旦达到该限制,Redis 会在关闭所有新连接的同时返回“达到客户端最大数量”的错误。
maxmemory-reserved 20% 的 maxmemory 20% 的内存保留用于复制缓冲区和其他系统进程。 不能更改此参数。
maxmemory-policy noeviction Maxmemory 策略是 Redis 服务器使用的一种设置,用来选择在达到 maxmemory(创建缓存时选择的缓存大小)时要删除的内容。 使用 Azure 托管 Redis 时,默认设置为 noeviction。 如果尝试将数据插入到完整的 Redis 实例中,则此设置将返回一条错误消息。 可以在 Azure 门户中配置此设置。 有关详细信息,请参阅内存策略
maxmemory-samples 3 LRU 算法和最小 TTL 算法都是近似算法而不是精确算法,这是为了节省内存。 默认情况下,Redis 会检查三个密钥并选取最近使用较少的一个。
lua-time-limit 5,000 Lua 脚本的最大执行时间(以毫秒为单位)。 如果达到最大执行时间,Redis 将记录脚本在达到最大允许时间后仍在执行,并开始以错误响应查询。
lua-event-limit 500 脚本事件队列的最大大小。
client-output-buffer-limit normal / client-output-buffer-limit pubsub 0 0 0 / 32mb 8mb 60 客户端输出缓冲区限制可用于强制断开与某些客户端的连接,这些客户端由于某种原因而无法以足够快的速度从服务器读取数据。 常见的原因是发布/订阅客户端使用消息的速度不如发布者生成消息的速度快。 有关详细信息,请参阅 https://redis.io/topics/clients

注意

Azure 托管 Redis 仅支持 Redis 配置设置的子集。 一些最常用的配置设置(例如 max-memory-policy)都可以通过 Azure 门户或命令行管理工具(例如 Azure CLI 或 PowerShell)进行配置。 可以使用 CONFIG SET 命令配置其他值。 有关详细信息,请参阅与 Redis Community Edition 配置设置的兼容性

数据库

目前,Azure 托管 Redis 仅支持每个实例一个数据库。

最大客户端数

每个 Azure 托管 Redis SKU 的 maxclients 属性各不相同。

有关每个 SKU 的连接限制的详细信息,请参阅 Azure 托管 Redis 定价页

注意

虽然每个缓存大小最多允许一定数量的连接,但与 Redis 的每个连接都具有其关联的开销。 此类开销的一个示例是,由于 TLS/SSL 加密而导致的 CPU 和内存使用。 给定缓存大小的最大连接限制假定轻负载缓存。 如果连接开销的负载客户端操作的负载超出了系统容量,那么即使未超出当前缓存大小的连接限制,缓存也可能会遇到容量问题。

Azure 托管 Redis 不支持 Redis 命令

Azure 托管 Redis 实例的配置和管理由 Microsoft 进行管理,它会禁用多个命令,以确保服务以安全且一致的方式运行。 如果尝试调用它们,将收到一条类似于 "(error) ERR unknown command" 的错误消息。

阻止的命令包括:

  • BGREWRITEAOF
  • BGSAVE
  • CLUSTER - 群集写入命令已禁用,但允许使用只读群集命令。
  • MODULE LOAD
  • MOVE
  • PSYNC
  • REPLICAOF
  • REPLCONF - Azure 托管 Redis 实例不允许客户添加外部副本。 此命令通常仅由服务器发送。
  • SAVE
  • SHUTDOWN
  • SELECT
  • 同步

有关已阻止命令的完整列表,请参阅与 Redis Community Edition 命令的兼容性

对于使用活动异地复制的缓存实例,还会阻止以下命令,以防止意外丢失数据:

  • FLUSHALL
  • FLUSHDB

请改为通过门户、PowerShell 或 CLI 来执行控制平面刷新操作