快速入门:在 .NET Framework 中使用 Azure Redis 缓存
在本快速入门中,会将 Azure Redis 缓存合并到 .NET Framework 应用中,以便能够访问 Azure 中的任何应用程序都可以访问的安全专用缓存。 你专门在 .NET 控制台应用中将 StackExchange.Redis 客户端与 C# 代码配合使用。
跳到 GitHub 上的代码
从 GitHub 上的 Azure-Samples/azure-cache-redis-samples 克隆存储库。
先决条件
- Azure 订阅 - 创建订阅
- Visual Studio 2019
- .NET Framework 4 或更高版本是 StackExchange.Redis 客户端所必需的。
创建用于 Redis 的 Azure 缓存实例
若要创建缓存,请登录到 Azure 门户并选择“创建资源”。
在“入门”页上的搜索框中键入“Azure Cache for Redis”。 然后选择创建。
在“新建 Redis 缓存”页上配置缓存的设置。
设置 选择值 说明 订阅 单击下拉箭头并选择你的订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。 资源组 单击下拉箭头并选择一个资源组,或者选择新建并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。 DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS name>.redis.cache.chinacloudapi.cn。 位置 单击下拉箭头并选择一个位置。 选择使用缓存的其他服务附近的区域。 缓存 SKU 打开下拉列表并选择一个 SKU。 此 SKU 决定可用于缓存的大小、性能和功能参数。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述。 缓存大小 打开下拉列表并选择缓存的大小 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述。 选择网络选项卡,或选择网络按钮(位于页面底部) 。
在网络选项卡中,选择你的连接方法。
选择“下一步: 高级”选项卡,或选择页面底部的“下一步: 高级”按钮,以查看“高级”选项卡。
- 对于“基本”或“标准”缓存,请切换非 TLS 端口的选项。 还可以选择是否要启用“Microsoft Entra 身份验证”。
- 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。 还可以选择是否要启用“Microsoft Entra 身份验证”。
选择下一步: 标记选项卡,或选择页面底部的下一步: 标记按钮 。
或者,在标记选项卡中,如果希望对资源分类,请输入名称或值。
选择“查看 + 创建”。 随后你会转到“查看 + 创建”选项卡,Azure 将在此处验证配置。
显示绿色的“已通过验证”消息后,选择创建。
创建缓存需要一段时间。 可以在 Azure Cache for Redis 的概述页上监视进度。 如果状态显示为正在运行,则表示该缓存可供使用。
对缓存使用 Microsoft Entra ID 身份验证
Azure Redis 缓存将默认启用 Microsoft Entra 身份验证。 访问密钥将默认禁用。
重要
Microsoft 建议使用 Microsoft Entra ID 身份验证来获得最安全的身份验证体验,而不要使用密码或访问密钥。 本文本部分中所述的身份验证使用的是访问密钥,这需要高度信任应用程序,并且这种方法会带来风险,而使用 Microsoft Entra ID 则不存在这种风险。 请仅在 Microsoft Entra ID 身份验证不可行时才使用本文档中所述的方法。
在 Azure 门户中,选择要使用基于 Microsoft Entra 令牌的身份验证的缓存。
从“资源”菜单中选择“身份验证”。
选择“选择成员”并输入有效用户的名称。 选择“保存”时,系统会自动向你输入的用户默认分配数据所有者访问策略。 还可输入托管标识或服务主体以连接到缓存实例。
有关如何将 Microsoft Entra ID 与 Azure CLI 配合使用的信息,请参阅标识参考页面。
安装使用 Microsoft Entra ID 身份验证所需的库
Azure.StackExchange.Redis 库包含 Microsoft Entra ID 身份验证方法,用于使用 Microsoft Entra ID 连接到 Azure Redis 服务。 它适用于所有 Azure Cache for Redis。
在 Visual Studio 中打开项目
右键单击项目,选择“管理 NuGet 包...”
搜索
Microsoft.Azure.StackExchangeRedis
单击“安装”按钮进行安装
接受所有提示的内容以完成安装
使用 Microsoft Entra ID 连接到缓存
在代码中包含库
using Azure.Identity; using StackExchange.Redis
使用默认 Azure 凭据对客户端连接进行身份验证。 这使代码能够在本地运行时使用已登录的用户凭据,并在 Azure 中运行时使用 Azure 托管标识,而无需更改代码。
var configurationOptions = await ConfigurationOptions.Parse($"{_redisHostName}").ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
ConnectionMultiplexer _newConnection = await ConnectionMultiplexer.ConnectAsync(configurationOptions);
IDatabase Database = _newConnection.GetDatabase();
编辑 app.config 文件
通过添加以下内容编辑 app.config 文件:
<appSettings> <add key="RedisHostName" value="<cache-hostname-with-portnumber>"/> </appSettings>
将
<cache-hostname>
替换为你的缓存主机名,它显示在 Azure 门户中“资源”菜单内的“概览”中。保存文件。
有关详细信息,请参阅 StackExchange.Redis 和 GitHub 存储库中的代码。
编辑 app.config 文件
通过添加以下内容编辑 app.config 文件:
<appSettings> <add key="RedisHostName" value="<cache-hostname-with-portnumber>"/> </appSettings>
将
<cache-hostname>
替换为你的缓存主机名,它显示在 Azure 门户中“资源”菜单内的“概览”中。例如,使用 Azure Cache for Redis:my-redis.chinanorth.chinacloudapi.cn:6380
保存文件。
有关详细信息,请参阅 StackExchange.Redis 和 GitHub 存储库中的代码。
运行示例
按 Ctrl+F5 生成并运行控制台应用,以便测试 .NET 对象的序列化。
清理资源
要继续使用在本文中创建的资源,请保留资源组。
否则,如果已完成资源,可以删除创建的 Azure 资源组以避免产生费用。
重要
删除资源组的操作不可逆。 删除资源组时,包含在其中的所有资源会被永久删除。 请确保不会意外删除错误的资源组或资源。 如果在现有资源组(其中包含要保留的资源)内创建了此资源,可以逐个删除这些资源,而不是删除资源组。
删除资源组的步骤
登录到 Azure 门户,然后选择“资源组”。
选择要删除的资源组。
如果有多个资源组,请使用“筛选任何字段...”框,键入为本文创建的资源组的名称。 在结果列表中选择资源组。
选择“删除资源组”。
系统会要求确认是否删除资源组。 键入资源组的名称进行确认,然后选择“删除”。
片刻之后,将会删除该资源组及其所有资源。