共用方式為


快速入門:在 Node.js 中使用 Azure Cache for Redis

在本快速入門中,您會將 Azure Cache for Redis 納入 Node.js 應用程式中,以便存取可從 Azure 內任何應用程式存取的安全、專用快取。

必要條件

如需使用其他 Node.js 用戶端的範例,請參閱列在 Node.js Redis 用戶端之 Node.js 用戶端的個別文件。

建立快取

  1. 若要建立快取,請登入 Azure 入口網站,然後選取 [建立資源]

    建立資源會在左側瀏覽窗格中反白顯示。

  2. 在 [ 開始使用] 頁面上,於搜尋方塊中輸入 Azure Cache for Redis 。 然後,選取 [建立]

    搜尋方塊中 Azure Cache for Redis 的 Azure Marketplace 螢幕快照,並以紅色方塊醒目提示建立。

  3. 在 [ 新增 Redis 快 取] 頁面上,設定快取的設定。

    設定 選擇值 描述
    訂用帳戶 下拉並選取您的訂用帳戶。 這個新的 Azure Cache for Redis 執行個體建立所在的訂用帳戶。
    資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 用來建立快取和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    DNS 名稱 輸入唯一名稱。 快取名稱必須為介於 1 到 63 個字元之間的字串,而且只能包含數字、字母或連字號。 名稱的開頭和結尾必須是數字或字母,且不可包含連續的連字號。 快取執行個體的「主機名稱」<DNS 名稱>.redis.cache.windows.net
    地點 下拉並選取位置。 選取一個區域,其靠近其他要使用您快取的服務。
    快取 SKU 下拉式清單並選取 SKU SKU 會決定快取可用的大小、效能和功能參數。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀
    快取大小 下拉式清單並選取快取的大小 如需詳細資訊,請參閱 Azure Cache for Redis 概觀
  4. 選取 [網路] 索引標籤,或選取頁面底部的 [網路] 按鈕。

  5. 在 [網路功能] 索引標籤中,選取您的連線方法。

  6. 選取 [下一步: 進階] 索引標籤,或選取頁面底部的 [下一步: 進階] 按鈕以查看 [進階] 索引標籤。

    此螢幕快照顯示工作窗格中的 [進階] 索引標籤,以及要選取的選項。

    • 針對基本或標準快取,切換適用於非 TLS 連接埠的選取項目。 您也可以選取是否要啟用 Microsoft Entra 驗證
    • 針對進階快取,設定適用於非 TLS 連接埠、叢集、受控識別和資料持續性的設定。 您也可以選取是否要啟用 Microsoft Entra 驗證
  7. 選取 [下一步: 標記] 索引標籤,或選取頁面底部的 [下一步: 標記] 按鈕。

  8. 在 [標記] 索引標籤中,如果您想要分類資源,可以選擇性地輸入名稱和值。

  9. 選取 [檢閱 + 建立]。 您會移至 [檢閱 + 建立] 索引標籤,其中 Azure 會驗證您的設定。

  10. 出現綠色的「通過驗證」訊息之後,請選取 [建立]

建立快取需要一些時間。 您可以在 Azure Cache for Redis 的 [概觀] 頁面上監視進度。 當 [狀態] 顯示為 [執行中] 時,表示快取已可供使用。

從 Azure 入口網站擷取主機名稱、連接埠和存取金鑰

若要連線 Azure Cache for Redis 伺服器,快取用戶端需要快取的主機名稱、連接埠和金鑰。 某些用戶端可能會以稍有不同的名稱來參考這些項目。 您可以從 Azure 入口網站取得主機名稱、連接埠和金鑰。

  • 若要取得存取金鑰,請從 [資源] 功能選取 [ 驗證 ]。 然後,選取 [ 存取金鑰] 索引標籤

    Azure Cache for Redis 金鑰

  • 若要取得快取的主機名和埠,請從 [資源] 功能表中選取 [概觀 ]。 主機名稱的格式為 <DNS 名稱>.redis.cache.windows.net

    Azure Redis 快取屬性

主機名稱主要存取金鑰新增環境變數。 請從程式碼使用這些變數,而不是直接在程式碼中包含敏感性資訊。

set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache
set AZURE_CACHE_FOR_REDIS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

連線到快取

node_redis 的最新組建提供數個連線選項的支援。 請勿對程式碼中的每個作業建立新連線。 相反地,請盡可能重複使用連線。

建立新的 Node.js 應用程式

  1. 建立名為 redistest.js 的新指令檔。

  2. 使用命令來安裝 redis 套件。

    `npm install redis`
    
  3. 在檔案中新增下列 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 Cache for Redis 執行個體。 此程式碼也會將字串值儲存到快取中,以及擷取其中的字串值。 PINGCLIENT LIST 命令也會執行。 如需更多搭配使用 Redis 與 node_redis 用戶端的範例,請參閱 https://redis.js.org/

  4. 使用 Node.js 執行指令碼。

    node redistest.js
    
  5. 範例輸出。

    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 資源,以免衍生費用。

重要

刪除資源群組是無法回復的動作,資源群組和其內的所有資源將會永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您是在包含需保留資源的現有資源群組內部,建立用來裝載此範例的資源,則可以個別刪除每個資源,而不必刪除整個資源群組。

  1. 登入 Azure 入口網站,然後選取 [資源群組]

  2. 在 [依名稱篩選] 文字方塊中,輸入您資源群組的名稱。 本文的指示是使用名為 TestResources 的資源群組。 在結果清單中的目標資源群組上方,選取 ...,然後按一下 [刪除資源群組]

    刪除 Azure 資源群組

  3. 確認刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]

  4. 片刻過後,系統便會刪除該資源群組及其所有內含的資源。

取得範例程式碼

在 GitHub 上取得 Node.js 快速入門

下一步

在本快速入門中,您已了解如何從 Node.js 應用程式使用 Azure Cache for Redis。 請繼續閱讀下一個快速入門,以搭配使用 Azure Cache for Redis 與 ASP.NET Web 應用程式。