共用方式為


快速入門:搭配使用 Azure Cache for Redis 與 ASP.NET Core Web 應用程式

在本快速入門中,您會將 Azure Cache for Redis 納入 ASP.NET Core Web 應用程式,該應用程式會連線至 Azure Cache for Redis 來儲存資料和從快取擷取資料。

.NET Core 也有快取提供者。 若要在對現有程式碼進行最少變更的情況下,快速開始使用 Redis,請參閱:

跳至 GitHub 上的程式碼

https://github.com/Azure-Samples/azure-cache-redis-samples複製 GitHub 存放庫並瀏覽至quickstart/aspnet-core目錄,以檢視後續步驟的完整原始程式碼。

目錄 quickstart/aspnet-core 也會設定為 Azure 開發人員 CLI (azd 範本。 使用開放原始碼 azd 工具來簡化從本機環境到 Azure 的佈建和部署。 或者,執行 azd up 命令來自動布建 Azure Cache for Redis 實例,並設定本機範例應用程式以連線到它:

azd up

探索 eShop 範例

在下一個步驟中,您可以看到示範 ASP.NET Core 快取提供者的實際案例 eShop 應用程式:使用 Redis 快取提供者的 ASP.NET Core eShop

包含的功能:

  • Redis 分散式快取
  • Redis 工作階段狀態提供者

部署指示位於 README.md 中。

必要條件

建立快取

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

    醒目提示左側導覽窗格中的 [建立資源]。

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

    Azure Marketplace 的螢幕擷取畫面,搜尋方塊中有 [Azure Cache for Redis],並以紅框醒目提示 [建立]。

  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. 選取 [下一步: 進階] 索引標籤,或選取頁面底部的 [下一步: 進階] 按鈕以查看 [進階] 索引標籤。

    螢幕擷取畫面:顯示工作窗格中的 [進階] 索引標籤,以及可供選取的可用選項。

  7. 核取方塊以啟用 Microsoft Entra Authentication

    重要

    為了實現最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 來授權針對快取的請求。 相較於共用金鑰授權,使用 Microsoft Entra ID 和受控識別來授權可提供更優異的安全性,也更容易使用。 如需搭配快取使用受控識別的詳細資訊,請參閱使用 Microsoft Entra ID 進行快取驗證 (部分機器翻譯)。

  8. 選取 [下一步: 標記] 索引標籤,或選取頁面底部的 [下一步: 標記] 按鈕。

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

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

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

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

從 Azure 入口網站 擷取主機名

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

  • 從 [資源] 功能選取 [ 概觀 ]。 主機名稱的格式 <DNS-name>.redis.cache.windows.net為 。

    顯示 Azure Cache for Redis 屬性的螢幕快照,其中包含主機名周圍的紅色方塊。

新增 Redis 存取原則

您必須將數據存取原則指派給存取 Azure Cache for Redis 的身分識別。 在此範例中,您會將數據存取原則指派給您用來登入 Azure CLI 或 Visual Studio 的相同Microsoft Entra ID 帳戶。

  1. 選取 快取上的 [設定 資源] 功能表,然後選取 [ 數據存取組態]。

  2. 在 [ 數據存取組態 ] 頁面上,從頂端導覽中選取 [新增 > Redis 使用者 ]。

    顯示資料存取設定畫面的螢幕快照。

  3. 在 [ 新增 Redis 使用者 ] 頁面上,選取 [數據參與者 ] 原則,然後選取 [ 下一步:Redis 使用者]。

  4. 選擇 [+ 選取成員 ] 以開啟飛出視窗選單。 搜尋您的使用者帳戶,並從結果中選取它。

    顯示工作窗格中 [Redis 使用者] 索引卷標的螢幕快照,其中已以紅色方塊醒目提示選取成員。

  5. 選取 [ 檢閱 + 指派],將原則指派 給選取的使用者。

新增主機名的本機密碼

在命令視窗中,執行下列命令來儲存名為 RedisHostName 的新秘密,取代快取名稱和主要存取密鑰的佔位元,包括角括號:

dotnet user-secrets set RedisHostName "<cache-name>.redis.cache.windows.net"

使用 RedisConnection 連線到快取

RedisConnection 類別會管理快取的連線。 連線是由 Controllers 資料夾 HomeController.cs 檔案中的下列陳述式所建立:

_redisConnection = await _redisConnectionFactory;

類別 RedisConnection.cs 包含 StackExchange.Redis 檔案頂端的 和 Azure.Identity 命名空間,以包含連線到 Azure Cache for Redis 的基本類型。

using StackExchange.Redis;
using Azure.Identity;

RedisConnection 程式碼管理來自 StackExchange.RedisConnectionMultiplexer 執行個體,以確保對快取的連線一定良好。 當連線中斷且無法自動重新連線時,RedisConnection 類別會重新建立連線。

如需詳細資訊,請參閱 StackExchange.RedisGitHub 存放庫中的程式碼。

範例中的版面配置檢視

此範例的首頁版面配置會儲存在 _Layout.cshtml 檔案中。 從此頁面按一下 [Azure Cache for Redis 測試],即可啟動實際的快取測試。

  1. 開啟 Views\Shared\_Layout.cshtml

  2. 您應該會在 <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 測試] 以查看範例輸出。

  1. 在 [方案總管] 中,展開 [檢視] 資料夾,然後在 [主資料夾] 資料夾上按一下滑鼠右鍵。

  2. 您應該會在 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>
    

在本機執行應用程式

  1. 在命令視窗中執行下列命令,以建置應用程式:

    dotnet build
    
  2. 然後,使用下列命令執行應用程式:

    dotnet run
    
  3. 在 Web 瀏覽器中瀏覽至 https://localhost:5001

  4. 在網頁的導覽列上選取 [Azure Cache for Redis 測試] 以測試快取存取。

已完成本機簡單測試的螢幕擷取畫面

清除資源

如果您想要繼續使用在本文中建立的資源,請保留該資源群組。

否則,若已完成資源使用,則可刪除您建立的 Azure 資源群組,以避免衍生費用。

重要

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

刪除資源群組

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

  2. 選取您想要刪除的資源群組。

    如果有許多資源群組,請使用 [篩選任何欄位] 方塊,並輸入您針對本文所建立資源群組的名稱。 選取結果清單中的資源群組。

    此螢幕擷取畫面顯示工作窗格中要刪除的資源群組清單。

  3. 選取 [刪除資源群組]

  4. 系統將會要求您確認是否刪除資源群組。 輸入您的資源群組名稱以進行確認,然後選取 [刪除]

    此螢幕擷取畫面顯示需要資源名稱才能確認刪除的表單。

不久後,系統便會刪除該資源群組及其所有的資源。