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

在本快速入門中,您會使用 Visual Studio 2019 建立 ASP.NET Web 應用程式,以連線到 Azure Cache for Redis 以儲存和擷取快取中的數據。 然後,您將應用程式部署至 Azure App 服務。

跳至 GitHub 上的程式碼

複製 GitHub 上的存放庫 https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet

必要條件

建立快取

接下來,您會建立應用程式的快取。

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

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

  2. 在 [新增] 頁面上選取 [資料庫],然後選取 [Azure Cache for Redis]

    在 [新增] 上,會醒目提示 [資料庫],並醒目提示 Azure Cache for Redis。

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

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

    Azure Redis 快取屬性

編輯 CacheSecrets.config 檔案

  1. 在您的電腦上建立名為 CacheSecrets.config 的檔案。將它放在未簽入範例應用程式原始程式碼的位置。 在本快速入門中 ,CacheSecrets.config 檔案位於 C:\AppSecrets\CacheSecrets.config

  2. 編輯 CacheSecrets.config 檔案。 然後新增下列內容:

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. 將取代 <cache-name> 為您的快取主機名。

  4. 將取代 <access-key> 為快取的主鍵。

    提示

    當您重新產生主要存取金鑰時,您可以在金鑰輪替期間使用次要存取金鑰作為替代金鑰。

  5. 儲存檔案。

更新MVC應用程式

在本節中,您可以看到MVC應用程式,此應用程式會顯示針對 Azure Cache for Redis 顯示簡單測試的檢視。

web.config 檔案如何連線到快取

當您在本機執行應用程式時,CacheSecrets.config 中的資訊會用來連線到 Azure Cache for Redis 實例。 稍後,您可以將此應用程式部署至 Azure。 此時,您會在 Azure 中設定應用程式設定,讓應用程式用來擷取快取連線資訊,而不是此檔案。

因為 CacheSecrets.config 檔案未部署至 Azure 與您的應用程式,所以您只會在本機測試應用程式時使用它。 盡可能保護此資訊,以防止惡意存取快取數據。

更新 web.config 檔案

  1. 方案總管 中,開啟 web.config 檔案。

    Web.config

  2. 在 web.config 檔案中,您可以設定<appSettings>元素以在本機執行應用程式。

    <appSettings file="C:\AppSecrets\CacheSecrets.config">

ASP.NET 執行時間會將外部檔案的內容與 元素中的 <appSettings> 標記合併。 如果找不到指定的檔案,運行時間會忽略檔案屬性。 您的秘密(快取 連接字串)不會包含在應用程式的原始碼中。 當您將 Web 應用程式部署至 Azure 時, 不會部署 CacheSecrets.config 檔案。

安裝 StackExchange.Redis

您的解決方案需要 StackExchange.Redis 套件才能執行。 使用下列程式安裝:

  1. 若要將應用程式設定為使用適用於 Visual Studio 的 StackExchange.Redis NuGet 套件,請選取 [工具 > NuGet 封裝管理員 封裝管理員 > 控制台]。

  2. 從視窗執行 Package Manager Console 下列命令:

    Install-Package StackExchange.Redis
    
  3. NuGet 套件會下載並新增用戶端應用程式所需的元件參考,以使用 StackExchange.Redis 用戶端存取 Azure Cache for Redis。

使用 Redis 連線 快取 連線

快取的連線是由 RedisConnection 類別所管理。 連接會先在此語句中從 ContosoTeamStats/Controllers/HomeController.cs進行:

   private static Task<RedisConnection> _redisConnectionFactory = RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString()););

Cache 連線 ion 秘密的值是使用 Secret Manager 組態提供者來存取,並做為密碼參數使用。

RedisConnection.cs中,您會看到 StackExchange.Redis 命名空間已新增至程序代碼。 類別需要 RedisConnection 此專案。

using StackExchange.Redis;

程式RedisConnection代碼會藉由從StackExchange.Redis管理 ConnectionMultiplexer 實例,確保快取一律有狀況良好的連線。 類別 RedisConnection 會在連線遺失且無法自動重新連線時重新建立連線。

如需詳細資訊,請參閱 StackExchange.Redis 和 GitHub 存放庫中的程序代碼

範例中的版面配置檢視

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

  1. 方案總管 中,展開 [檢視>共用] 資料夾。 然後開啟 _Layout.cshtml 檔案。

  2. 您會在 中看到 <div class="navbar-header">下列這一行。

    @Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
    

    歡迎頁面的螢幕快照

顯示快取中的數據

從首頁選取 [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>
    

在本機執行應用程式

根據預設,專案會設定為在 IIS Express本機裝載應用程式,以進行測試和偵錯。

在本機執行應用程式

  1. 在 Visual Studio 中,選取 [>偵錯開始偵錯] 以在本機建置並啟動應用程式以進行測試和偵錯。

  2. 在瀏覽器中,選取 導覽列上的 [Azure Cache for Redis 測試 ]。

  3. 在下列範例中 Message ,索引鍵先前有快取的值,這是使用入口網站中的 Azure Cache for Redis 控制台所設定。 應用程式已更新快取的值。 應用程式也會執行 PINGCLIENT LIST 命令。

    簡單測試已完成本機的螢幕快照

在 Azure 中發佈並執行

在本機成功測試應用程式之後,您可以將應用程式部署至 Azure 並在雲端中執行。

將應用程式發佈至 Azure

  1. 在 Visual Studio 中,以滑鼠右鍵按兩下 方案總管 中的項目節點。 然後選取 [ 發佈]。

    發佈

  2. 選取 [Microsoft Azure App 服務],選取 [新建],然後選取 [發佈]。

    發佈至 App Service

  3. 在 [ 建立 App Service ] 對話框中,進行下列變更:

    設定 建議值 描述
    應用程式名稱 使用預設值。 應用程式名稱是應用程式部署至 Azure 時的主機名。 名稱可能會新增時間戳後綴,以在必要時使其是唯一的。
    訂用帳戶 選擇 Azure 訂用帳戶。 此訂用帳戶會收取任何相關的裝載成本。 如果您有多個 Azure 訂用帳戶,請確認已選取您想要的訂用帳戶。
    資源群組 使用您建立快取的相同資源群組(例如 TestResourceGroup)。 資源群組可協助您以群組的形式管理所有資源。 稍後,當您想要刪除應用程式時,您可以只刪除群組。
    App Service 計劃 選取 [ 新增],然後建立名為 TestingPlan 的新 App Service 方案。
    使用您在建立快取時所使用的相同 位置
    針對大小選擇 [ 免費 ]。
    App Service 方案會定義一組要執行之 Web 應用程式的計算資源。

    App Service 對話方塊

  4. 設定 App Service 裝載設定之後,請選取 [ 建立]。

  5. 監視 Visual Studio 中的 [ 輸出 ] 視窗以查看發佈狀態。 發佈應用程式之後,會記錄應用程式的URL:

    發佈輸出

新增快取的應用程式設定

發佈新應用程式之後,請新增應用程式設定。 此設定可用來儲存快取連線資訊。

若要新增應用程式設定

  1. 在 Azure 入口網站 頂端的搜尋列中輸入應用程式名稱,以尋找您建立的新應用程式。

    尋找應用程式

  2. 新增名為 Cache 連線 ion 的新應用程式設定,讓應用程式用來連線到快取。 使用您在 CacheSecrets.config 檔案中設定CacheConnection的相同值。 值包含快取主機名和存取金鑰。

    新增應用程式設定

在 Azure 中執行應用程式

  1. 在您的瀏覽器中,移至應用程式的URL。 URL 會出現在 Visual Studio 輸出視窗中發佈作業的結果中。 它也會在您所建立應用程式概觀頁面上的 Azure 入口網站 中提供。

  2. 在導覽列上選取 [Azure Cache for Redis 測試 ],以測試快取存取,就像使用本機版本一樣。

清除資源

如果您繼續使用本快速入門,您可以保留您所建立的資源並重複使用它們。

否則,如果您已完成快速入門範例應用程式,您可以刪除在本快速入門中建立的 Azure 資源,以避免產生費用。

重要

刪除資源群組是無法回復的動作。 當您刪除資源群組時,會永久刪除其中的所有資源。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您已建立資源,以將這個範例裝載於包含您想要保留之資源的現有資源群組內,您可以個別刪除左側的每個資源,而不是刪除資源群組。

若要刪除資源群組

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

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

    刪除

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

幾分鐘后,資源群組及其所有資源都會遭到刪除。

下一步