快速入门:将 Azure Cache for Redis 与 ASP.NET Core Web 应用配合使用
在本快速入门中,我们将 Azure Cache for Redis 引入到一个 ASP.NET Core Web 应用程序中,该应用程序会连接到 Azure Cache for Redis 以在缓存中存储和检索数据。
跳到 GitHub 上的代码
克隆 GitHub 上的存储库 https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet-core。
先决条件
- Azure 订阅 - 创建订阅
- .NET Core SDK
创建缓存
若要创建缓存,请登录到 Azure 门户并选择“创建资源” 。
在“新建”页上选择“数据库”,然后选择“Azure Cache for Redis”。
在“新建 Redis 缓存”页上配置新缓存的设置。
设置 选择值 说明 订阅 单击下拉箭头并选择你的订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。 资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。 DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS name>.redis.cache.chinacloudapi.cn。 位置 单击下拉箭头并选择一个位置。 选择使用缓存的其他服务附近的区域。 缓存类型 下拉并选择一个层。 此层决定可用于缓存的大小、性能和功能。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述。 选择“网络”选项卡,或选择“网络”按钮(位于页面底部) 。
在“网络”选项卡中,选择你的连接方法。
选择“下一步: 高级”选项卡,或选择页面底部的“下一步: 高级”按钮,以查看“高级”选项卡。
- 对于“基本”或“标准”缓存,请切换非 TLS 端口的选项。 还可以选择是否要启用“Microsoft Entra 身份验证”。
- 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。 还可以选择是否要启用“Microsoft Entra 身份验证”。
选择“下一步: 标记”选项卡,或选择页面底部的“下一步: 标记”按钮 。
或者,在“标记”选项卡中,如果希望对资源分类,请输入名称或值。
选择“查看 + 创建” 。 随后你会转到“查看 + 创建”选项卡,Azure 将在此处验证配置。
显示绿色的“已通过验证”消息后,选择“创建”。
创建缓存需要一段时间。 可以在 Azure Cache for Redis 的“概述”页上监视进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。
从 Azure 门户检索主机名、端口和访问密钥
若要连接到你的 Azure Cache for Redis 服务器,缓存客户端需要该缓存的主机名、端口和密钥。 在某些客户端中,这些项的名称可能略有不同。 可以从 Azure 门户检索主机名、端口和访问密钥。
若要获取访问密钥,请在缓存的左侧导航中选择“访问密钥”。
若要获取主机名和端口,请在缓存的左侧导航栏中选择“属性”。 主机名的格式为 <DNS 名称>.redis.cache.chinacloudapi.cn。
记下主机名和主访问密钥。 稍后你将使用这些值来构造 CacheConnection 机密。
添加连接字符串的本地机密
在命令窗口中,在替换你的缓存名称和主访问密钥的占位符(包括尖括号)后,执行以下命令来存储名为 CacheConnection 的新机密:
dotnet user-secrets set CacheConnection "<cache name>.redis.cache.chinacloudapi.cn,abortConnect=false,ssl=true,allowAdmin=true,password=<primary-access-key>"
使用 RedisConnection 连接到缓存
与缓存的连接由 RedisConnection
类管理。 连接是通过 Controllers 文件夹中 HomeController.cs
内的以下语句建立的:
_redisConnection = await _redisConnectionFactory;
在 RedisConnection.cs
中,可以看到 StackExchange.Redis
命名空间已添加到代码中。 RedisConnection
类需要此命名空间。
using StackExchange.Redis;
RedisConnection
代码通过管理 StackExchange.Redis
中的 ConnectionMultiplexer
实例来确保始终与缓存建立运行状况正常的连接。 连接丢失且无法自动重新连接时,RedisConnection
类会重新创建该连接。
有关详细信息,请参阅 StackExchange.Redis 和 GitHub 存储库中的代码。
示例中的布局视图
此示例的主页布局存储在 _Layout.cshtml 文件中。 在此页中,可以通过单击“Azure Cache for Redis 测试”来启动实际的缓存测试。
打开 Views\Shared\_Layout.cshtml。
在
<div class="navbar-header">
中应会看到:<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
显示缓存中的数据
在主页中,选择“Azure Cache for Redis 测试”以查看示例输出。
在“解决方案资源管理器”中,展开“Views”文件夹,并右键单击“Home”文件夹。
在 RedisCache.cshtml 文件中应会看到此代码。
@{ ViewBag.Title = "Azure Cache for Redis Test"; } <h2>@ViewBag.Title.</h2> <h3>@ViewBag.Message</h3> <br /><br /> <table border="1" cellpadding="10"> <tr> <th>Command</th> <th>Result</th> </tr> <tr> <td>@ViewBag.command1</td> <td><pre>@ViewBag.command1Result</pre></td> </tr> <tr> <td>@ViewBag.command2</td> <td><pre>@ViewBag.command2Result</pre></td> </tr> <tr> <td>@ViewBag.command3</td> <td><pre>@ViewBag.command3Result</pre></td> </tr> <tr> <td>@ViewBag.command4</td> <td><pre>@ViewBag.command4Result</pre></td> </tr> <tr> <td>@ViewBag.command5</td> <td><pre>@ViewBag.command5Result</pre></td> </tr> </table>
在本地运行应用
在命令窗口中执行以下命令来生成应用:
dotnet build
然后,使用以下命令来运行应用:
dotnet run
在 Web 浏览器中浏览到
https://localhost:5001
。在网页的导航栏中选择“Azure Cache for Redis 测试”,以测试缓存访问。
清理资源
如果你要继续使用本快速入门,可以保留并重复使用创建的资源。
如果已完成快速入门示例应用程序,可以删除本快速入门中创建的 Azure 资源,以免产生费用。
重要
删除资源组的操作不可逆。 删除资源组时,包含在其中的所有资源会被永久删除。 请确保不会意外删除错误的资源组或资源。 如果在现有资源组(其中包含要保留的资源)中为托管此示例而创建了相关资源,可在左侧逐个删除这些资源,而不是删除资源组。
删除资源组的步骤
登录到 Azure 门户,然后选择“资源组”。
在“按名称筛选...”框中键入资源组的名称。 本文的说明使用了名为 TestResources 的资源组。 在资源组的结果列表中选择“...”,然后选择“删除资源组” 。
系统会要求确认是否删除资源组。 键入资源组的名称进行确认,然后选择“删除”。
片刻之后,将会删除该资源组及其所有资源。