快速入門:搭配使用 Azure Cache for Redis 與 ASP.NET Core Web 應用程式
在本快速入門中,您會將 Azure Cache for Redis 納入 ASP.NET Core Web 應用程式,該應用程式會連線至 Azure Cache for Redis 來儲存資料和從快取擷取資料。
.NET Core 也有快取提供者。 若要快速開始使用 Redis,對現有程式代碼進行最少變更,請參閱:
跳至 GitHub 上的程式碼
複製 GitHub 上的存放庫 https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet-core。
在下一個步驟中,您可以看到示範 ASP.NET 核心快取提供者的實際案例 eShop 應用程式: 使用 Redis 快取提供者 ASP.NET 核心 eShop。
包含的功能:
- Redis 分散式快取
- Redis 工作階段狀態提供者
部署指示位於 README.md 中。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- .NET Core SDK
建立快取
若要建立快取,請登入 Azure 入口網站,然後選取 [建立資源]。
在 [ 開始使用] 頁面上,於搜尋方塊中輸入 Azure Cache for Redis 。 然後,選取 [建立]。
在 [ 新增 Redis 快 取] 頁面上,設定快取的設定。
設定 選擇值 描述 訂用帳戶 下拉並選取您的訂用帳戶。 這個新的 Azure Cache for Redis 執行個體建立所在的訂用帳戶。 資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 用來建立快取和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。 DNS 名稱 輸入唯一名稱。 快取名稱必須為介於 1 到 63 個字元之間的字串,而且只能包含數字、字母或連字號。 名稱的開頭和結尾必須是數字或字母,且不可包含連續的連字號。 快取執行個體的「主機名稱」為 <DNS 名稱>.redis.cache.windows.net。 地點 下拉並選取位置。 選取一個區域,其靠近其他要使用您快取的服務。 快取 SKU 下拉式清單並選取 SKU。 SKU 會決定快取可用的大小、效能和功能參數。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀。 快取大小 下拉式清單並選取快取的大小 如需詳細資訊,請參閱 Azure Cache for Redis 概觀。 選取 [網路] 索引標籤,或選取頁面底部的 [網路] 按鈕。
在 [網路功能] 索引標籤中,選取您的連線方法。
選取 [下一步: 進階] 索引標籤,或選取頁面底部的 [下一步: 進階] 按鈕以查看 [進階] 索引標籤。
- 針對基本或標準快取,切換適用於非 TLS 連接埠的選取項目。 您也可以選取是否要啟用 Microsoft Entra 驗證。
- 針對進階快取,設定適用於非 TLS 連接埠、叢集、受控識別和資料持續性的設定。 您也可以選取是否要啟用 Microsoft Entra 驗證。
選取 [下一步: 標記] 索引標籤,或選取頁面底部的 [下一步: 標記] 按鈕。
在 [標記] 索引標籤中,如果您想要分類資源,可以選擇性地輸入名稱和值。
選取 [檢閱 + 建立]。 您會移至 [檢閱 + 建立] 索引標籤,其中 Azure 會驗證您的設定。
出現綠色的「通過驗證」訊息之後,請選取 [建立]。
建立快取需要一些時間。 您可以在 Azure Cache for Redis 的 [概觀] 頁面上監視進度。 當 [狀態] 顯示為 [執行中] 時,表示快取已可供使用。
從 Azure 入口網站擷取主機名稱、連接埠和存取金鑰
若要連線 Azure Cache for Redis 伺服器,快取用戶端需要快取的主機名稱、連接埠和金鑰。 某些用戶端可能會以稍有不同的名稱來參考這些項目。 您可以從 Azure 入口網站取得主機名稱、連接埠和金鑰。
若要取得存取金鑰,請從 [資源] 功能選取 [ 驗證 ]。 然後,選取 [ 存取金鑰] 索引標籤 。
若要取得快取的主機名和埠,請從 [資源] 功能表中選取 [概觀 ]。 主機名稱的格式為 <DNS 名稱>.redis.cache.windows.net。
請記下主機名稱和主要存取金鑰。 您後續會使用這些值來建構 CacheConnection 祕密。
新增連接字串的本機祕密
在命令視窗中,在取代您的快取名稱和主要存取金鑰的預留位置 (包括角括號) 後,執行下列命令以儲存名為 CacheConnection 的新祕密:
dotnet user-secrets set CacheConnection "<cache name>.redis.cache.windows.net,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 測試] 以查看範例輸出。
在 [方案總管] 中,展開 [檢視] 資料夾,然後在 [主資料夾] 資料夾上按一下滑鼠右鍵。
您應該會在 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 入口網站,然後選取 [資源群組]。
選取您想要刪除的資源群組。
如果有許多資源群組,請使用 [篩選任何欄位] 方塊,並輸入您針對本文所建立資源群組的名稱。 選取結果清單中的資源群組。
選取 [刪除資源群組]。
系統將會要求您確認是否刪除資源群組。 輸入您的資源群組名稱以進行確認,然後選取 [刪除]。
不久後,系統便會刪除該資源群組及其所有的資源。