クイックスタート: ASP.NET Core Web アプリで Azure Cache for Redis を使用する
このクイックスタートでは、Azure Cache for Redis を、Azure Cache for Redis に接続してキャッシュからデータを格納および取得する ASP.NET Core Web アプリケーションに組み込みます。
GitHub のコードにスキップする
GitHub でリポジトリ https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet-core をクローンします。
前提条件
- Azure サブスクリプション - 無料アカウントを作成する
- .NET Core SDK
キャッシュの作成
キャッシュを作成するには、Azure portal にサインインし、 [リソースの作成] を選択します。
[新規] ページで、 [データベース] を選択し、 [Azure Cache for Redis] を選択します。
[新規 Redis Cache] ページで、新しいキャッシュの設定を構成します。
設定 値を選択する 説明 サブスクリプション ドロップダウンで、ご自身のサブスクリプションを選択します。 この新しい Azure Cache for Redis インスタンスが作成されるサブスクリプション。 リソース グループ ドロップ ダウンでリソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。 DNS 名 一意の名前を入力します。 キャッシュ名は 1 から 63 文字の文字列で、数字、英字、ハイフンのみを使用する必要があります。 名前の先頭と末尾には数字または文字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスの "ホスト名" は、<DNS name>.redis.cache.windows.net です。 場所 ドロップ ダウンで場所を選択します。 キャッシュを使用する他のサービスの近くのリージョンを選択します。 キャッシュの種類 ドロップ ダウンでレベルを選択します。 レベルによって、キャッシュに使用できるのサイズ、パフォーマンス、および機能が決まります。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。 [ネットワーク] タブを選択するか、ページの下部にある [ネットワーク] ボタンを選択します。
[ネットワーク] タブで、接続方法を選択します。
[次へ: 詳細設定] タブを選択するか、ページの下部にある [次へ: 詳細設定] ボタンを選択して、[詳細設定] タブを表示します。
- Basic または Standard キャッシュを利用する場合は、非 TLS ポートの選択をオンにします。 Microsoft Entra 認証を有効にするかどうかを選択することもできます。
- Premium キャッシュを利用する場合は、非 TLS ポート、クラスタリング、マネージド ID、データ永続化の設定を構成します。 Microsoft Entra 認証を有効にするかどうかを選択することもできます。
ページの下部にある [次へ: タグ] タブを選択するか、ページの下部にある [次へ: タグ] ボタンを選択します。
必要に応じて、 [タグ] タブで、リソースを分類する場合は名前と値を入力します。
[Review + create](レビュー + 作成) を選択します。 [確認および作成] タブが表示され、Azure によって構成が検証されます。
緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。
キャッシュが作成されるまで、しばらく時間がかかります。 Azure Cache for Redis の [概要] ページで進行状況を監視できます。 [状態] に "実行中" と表示されている場合は、キャッシュを使用する準備ができています。
Azure portal からホスト名、ポート、アクセス キーを取得する
Azure Cache for Redis サーバーに接続するには、キャッシュ クライアントにキャッシュのホスト名、ポート、およびキーが必要です。 クライアントによっては、これらの項目を参照するための名前が若干異なる場合があります。 ホスト名、ポート、およびキーは Azure portal から取得できます。
アクセス キーを取得するには、[リソース] メニューから [認証] を選択します。 その後、[アクセス キー] タブを選択します。
キャッシュのホスト名とポートを取得するには、[リソース] メニューから [概要] を選択します。 ホスト名は、<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 テスト] を選択します。
ソリューション エクスプローラーで、[Views] フォルダーを展開し、[Home] フォルダーを右クリックします。
このコードは 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
を参照します。Web ページにあるナビゲーション バーの [Azure Cache for Redis Test](Azure Cache for Redis テスト) を選択して、キャッシュへのアクセスをテストします。
リソースをクリーンアップする
この記事で作成したリソースを引き続き使用する場合は、リソース グループを保持します。
それ以外の場合、リソースを使い終わったら、課金されないように、作成した Azure リソース グループを削除できます。
重要
リソース グループを削除すると、元に戻すことができません。 リソース グループを削除すると、そのリソース グループ内のすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 リソースを既存のリソース グループ内に作成し、そのリソース グループ内に保持したいリソースが含まれている場合は、リソース グループを削除するのではなく、各リソースを個別に削除できます。
リソース グループを削除するには
Azure portal にサインインし、 [リソース グループ] を選択します。
削除するリソース グループを選択します。
多数のリソース グループがある場合は、[任意のフィールドのフィルター...] ボックスを使用し、この記事用に作成したリソース グループの名前を入力します。 結果リストでリソース グループを選びます。
[リソース グループの削除] を選択します。
リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、[削除] を選択します。
しばらくすると、リソース グループとそのリソースのすべてが削除されます。