你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:在 Node.js 中使用 Azure Cache for Redis
在本快速入门中,会将 Azure Redis 缓存合并到 Node.js 应用中,以便能够访问 Azure 中的任何应用程序都可以访问的安全专用缓存。
先决条件
- Azure 订阅 - 创建免费帐户
- node_redis,可以使用命令
npm install redis
安装。
有关使用其他 Node.js 客户端的示例,请参阅 Node.js Redis 客户端中所列的适用于 Node.js 客户端的各个文档。
创建缓存
若要创建缓存,请登录到 Azure 门户并选择“创建资源” 。
在“入门”页上的搜索框中键入“Azure Cache for Redis”。 然后选择创建。
在“新建 Redis 缓存”页上配置缓存的设置。
设置 选择值 说明 订阅 单击下拉箭头并选择你的订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。 资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。 DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS 名称>.redis.cache.windows.net。 位置 单击下拉箭头并选择一个位置。 选择使用缓存的其他服务附近的区域。 缓存 SKU 打开下拉列表并选择一个 SKU。 此 SKU 决定可用于缓存的大小、性能和功能参数。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述。 缓存大小 打开下拉列表并选择缓存的大小 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述。 选择“网络”选项卡,或选择“网络”按钮(位于页面底部) 。
在“网络”选项卡中,选择你的连接方法。
选择“下一步: 高级”选项卡,或选择页面底部的“下一步: 高级”按钮,以查看“高级”选项卡。
- 默认情况下,对于新的“基本”、“标准”或“高级”缓存,“Microsoft Entra 身份验证”处于启用状态,而“访问密钥身份验证”处于禁用状态。
- 对于“基本”或“标准”缓存,可以选择非 TLS 端口的选项。
- 对于“标准”和“高级”缓存,可以选择启用可用性区域。 创建缓存后,无法禁用可用性区域。
- 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。
重要
为了获得最佳安全性,Microsoft 建议尽可能使用 Microsoft Entra ID 和托管标识来授权针对缓存的请求。 与共享密钥授权相比,使用 Microsoft Entra ID 和托管标识进行授权提供了更高的安全性和易用性。 有关将托管标识用于缓存的详细信息,请参阅使用 Microsoft Entra ID 进行缓存身份验证。
选择“下一步: 标记”选项卡,或选择页面底部的“下一步: 标记”按钮 。
或者,在“标记”选项卡中,如果希望对资源分类,请输入名称或值。
选择“查看 + 创建”。 在“查看 + 创建”上,Azure 会验证你的配置。
显示绿色的“已通过验证”消息后,选择“创建”。
创建缓存需要一段时间。 可以在 Azure Cache for Redis 的“概述”页上监视进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。
从 Azure 门户检索主机名、端口和访问密钥
若要连接到你的 Azure Cache for Redis 服务器,缓存客户端需要该缓存的主机名、端口和密钥。 在某些客户端中,这些项的名称可能略有不同。 可以从 Azure 门户检索主机名、端口和访问密钥。
若要获取访问密钥,请从“资源”菜单中选择“身份验证”。 然后,选择“访问密钥”选项卡。
若要获取缓存的主机名和端口,请从“资源”菜单中选择“概述”。 主机名的格式为 <DNS 名称>.redis.cache.windows.net。
为主机名和主访问密钥添加环境变量。 通过代码使用这些变量,而不是直接在代码中包含敏感信息。
set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache
set AZURE_CACHE_FOR_REDIS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
连接到缓存
node_redis的最新版本支持多个连接选项。 不要为代码中的每个操作创建新连接, 而应尽可能重用连接。
新建 Node.js 应用
创建名为 redistest.js 的新脚本文件。
使用该命令安装 Redis 包。
`npm install redis`
将下面的示例 JavaScript 添加到文件。
const redis = require("redis"); // Environment variables for cache const cacheHostName = process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME; const cachePassword = process.env.AZURE_CACHE_FOR_REDIS_ACCESS_KEY; if(!cacheHostName) throw Error("AZURE_CACHE_FOR_REDIS_HOST_NAME is empty") if(!cachePassword) throw Error("AZURE_CACHE_FOR_REDIS_ACCESS_KEY is empty") async function testCache() { // Connection configuration const cacheConnection = redis.createClient({ // redis for TLS url: `redis://${cacheHostName}:6380`, password: cachePassword }); // Connect to Redis await cacheConnection.connect(); // PING command console.log("\nCache command: PING"); console.log("Cache response : " + await cacheConnection.ping()); // GET console.log("\nCache command: GET Message"); console.log("Cache response : " + await cacheConnection.get("Message")); // SET console.log("\nCache command: SET Message"); console.log("Cache response : " + await cacheConnection.set("Message", "Hello! The cache is working from Node.js!")); // GET again console.log("\nCache command: GET Message"); console.log("Cache response : " + await cacheConnection.get("Message")); // Client list, useful to see if connection list is growing... console.log("\nCache command: CLIENT LIST"); console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"])); // Disconnect cacheConnection.disconnect() return "Done" } testCache().then((result) => console.log(result)).catch(ex => console.log(ex));
此代码演示如何使用缓存主机名和密钥环境变量连接到 Azure Redis 缓存实例。 此代码还在缓存中存储和检索字符串值。 还执行了
PING
和CLIENT LIST
命令。 有关将 Redis 与 node_redis 客户端一起使用的更多示例,请参阅 https://redis.js.org/。使用 Node.js 运行该脚本。
node redistest.js
示例输出。
Cache command: PING Cache response : PONG Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: SET Message Cache response : OK Cache command: GET Message Cache response : Hello! The cache is working from Node.js! Cache command: CLIENT LIST Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6 Done
清理资源
如果想要继续学习下一篇教程,可以保留本快速入门中创建的资源,以便重复使用。 如果已完成快速入门示例应用程序,可以删除本快速入门中创建的 Azure 资源,以免产生费用。
重要
删除资源组的操作不可逆,资源组以及其中的所有资源将被永久删除。 请确保不会意外删除错误的资源组或资源。 如果在现有资源组(其中包含要保留的资源)中为托管此示例创建了资源,可单独删除每个资源,而不是删除资源组。
登录到 Azure 门户,然后选择“资源组”。
在“按名称筛选”文本框中,输入资源组的名称 。 本文的说明使用了名为 TestResources 的资源组。 在结果列表中的资源组上,选择“...”,然后选择“删除资源组” 。
确认删除资源组。 重新键入资源组的名称进行确认,然后选择“删除” 。
片刻之后,将会删除该资源组及其包含的所有资源。
获取示例代码
获取 GitHub 上的 Node.js快速入门。
后续步骤
本快速入门介绍了如何通过 Node.js 应用程序使用 Azure Redis 缓存。 请继续学习下一个快速入门,将 Azure Redis 缓存与 ASP.NET Web 应用配合使用。