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

在本快速入門中,您會使用 Visual Studio 2019 建立 ASP.NET Web 應用程式,並連線至 Azure Cache for Redis 以儲存資料和從快取擷取資料。 接著,您會將應用程式部署到 Azure App Service。

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

  7. 在基本或標準快取執行個體的 [進階] 索引標籤中,如果您想要啟用非 TLS 連接埠,請選取啟用切換。 您也可以選擇要使用 Redis 第 4 版或第 6 版。

    Redis 版本 4 或 6。

  8. 在高階快取執行個體的 [進階] 索引標籤中,設定非 TLS 連接埠、叢集和資料持續性的設定。 您也可以選擇要使用 Redis 第 4 版或第 6 版。

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

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

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

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

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

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

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

  • 若要取得存取金鑰,請從快取的左側導覽中選取 [存取金鑰] 。

    Azure Cache for Redis 金鑰

  • 若要取得主機名稱和連接埠,請從快取的左側導覽中選取 [屬性] 。 主機名稱的格式為 <DNS 名稱>.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。

使用 RedisConnection 連線至快取

與快取的連線是由 RedisConnection 類別所管理。 首先從 ContosoTeamStats/Controllers/HomeController.cs 的這個陳述式中建立連線:

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

CacheConnection 祕密的值可使用祕密管理員設定提供者進行存取,並用作密碼參數。

RedisConnection.cs 中,您會看到 StackExchange.Redis 命名空間已新增至程式碼。 這是 RedisConnection 類別的必要項目。

using StackExchange.Redis;

RedisConnection 程式碼可藉由從 StackExchange.Redis 管理 ConnectionMultiplexer 執行個體,確保與快取的連線一律保持良好的健康情況。 RedisConnection 類別會在連線中斷且無法自動重新連線時,重新建立連線。

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

範例中的版面配置檢視

此範例的首頁版面配置會儲存在 _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 Service]、選取 [新建],然後選取 [發佈]

    發佈至 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. 新增名為 CacheConnection 的應用程式設定,以供應用程式用來連線至快取。 在 CacheSecrets.config 檔案中使用針對 CacheConnection 所設定的相同值。 該值包含快取的主機名稱和存取金鑰。

    新增應用程式設定

在 Azure 中執行應用程式

  1. 在您的瀏覽器中,移至應用程式的 URL。 該 URL 會顯示在 Visual Studio [輸出] 視窗中的發佈作業結果內。 此外,在 Azure 入口網站中,該 URL 也會提供於您建立的應用程式所屬的 [概觀] 頁面上。

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

清除資源

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

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

重要

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

刪除資源群組

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

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

    刪除

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

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

後續步驟