この記事では、Azure Managed Redis (プレビュー) の開発方法に関するよくある質問への回答について説明します。
Azure Managed Redis (プレビュー) の使用を開始するにはどうすればよいですか?
Azure Managed Redis (プレビュー) の使用を開始するには、いくつかの方法があります。
- .NET、ASP.NET、Java、Node.js、Python で使用可能なチュートリアルのいずれかを確認できます。
- Azure Redis ラーニング パスを探索できます
- プロジェクトで使用する開発言語と一致するサンプル クライアントについては、クライアント ドキュメントで確認できます。 Azure Managed Redis で使用できる Redis クライアントは多数あります。 Redis クライアントの一覧については、「https://redis.io/clients」を参照してください。
Azure アカウントをお持ちでない場合は、次の操作を行います。
- 無料で Azure アカウントを開きます。 Azure の有料サービスを試用できるクレジットが提供されます。 このクレジットを使い切ってもアカウントは維持されるため、無料の Azure サービスと機能をご利用になれます。
- Visual Studio サブスクライバーの特典を有効にします。 MSDN サブスクリプションにより、有料の Azure サービスを利用できるクレジットが毎月与えられます。
StackExchange.Redis 構成オプションについて
StackExchange.Redis には多くのオプションが用意されています。 ここでは、いくつかの一般的な設定について説明します。 StackExchange.Redis オプションの詳細については、 StackExchange.Redis の構成に関するページを参照してください。
構成オプション | 説明 | 推奨 |
---|---|---|
AbortOnConnectFail | true の場合、ネットワーク障害の後に再接続できません。 | StackExchange.Redis が自動的に再接続するように、false に設定します。 |
ConnectRetry | 初期接続中に接続試行を繰り返す回数。 | 次の注意事項を参考にしてください。 |
ConnectTimeout | 接続操作のタイムアウト (ミリ秒単位)。 | 次の注意事項を参考にしてください。 |
通常は、クライアントの既定値で十分です。 ワークロードに基づいてオプションを微調整できます。
再試行
- 一般的に ConnectRetry と ConnectTimeout に関しては、フェイル ファストして再試行することをお勧めします。 これは、ワークロードと、クライアントが Redis コマンドを発行してから応答を受け取るまでに要する時間の平均に基づいたガイダンスです。
- 自分で接続の状態を確認して再接続するのではなく、StackExchange.Redis が自動的に再接続するように設定します。 ConnectionMultiplexer.IsConnected プロパティは使用しません。
- 問題の肥大化 - ある問題が発生し、再試行によって問題が肥大化して、解決しないことがあります。 問題の肥大化が発生した場合は、Microsoft Patterns & Practices グループ発行の再試行の一般的なガイダンスに関する記事で説明されている指数バックオフ再試行アルゴリズムの使用を検討してください。
タイムアウト値
- ワークロードを考慮したうえで、それに見合う値を設定します。 大きな値を保存する場合は、タイムアウトを大きな値に設定します。
- StackExchange.Redis が再接続できるように、
AbortOnConnectFail
を false に設定します。 - 要求ごとに新しい接続を作成するのではなく、有効期間が長い1つの
ConnectionMultiplexer
インスタンスを使用します。 接続を管理する方法の例については、RedisConnectionを使用してキャッシュに接続するの`RedisConnection``クラスを参照してください。 - 診断用には、
ConnectionMultiplexer.ClientName
プロパティを、アプリ インスタンスの一意な名前に設定します。 - カスタム ワークロードに対しては複数の
ConnectionMultiplexer
インスタンスを使用します。- アプリケーションの負荷が変化する場合は、このモデルに従うことができます。 次に例を示します。
- 1 つのマルチプレクサーを使用して、サイズの大きなキーを処理できます。
- 1 つのマルチプレクサーを使用して、サイズの小さなキーを処理できます。
- 使用する ConnectionMultiplexer ごとに、異なる接続タイムアウト値と再試行ロジックを設定できます。
- 診断を容易にするために、各マルチプレクサーで
ClientName
プロパティを設定します。 - このガイダンスにより、
ConnectionMultiplexer
あたりの待機時間が合理化される場合があります。
どのような Redis クライアントを使用できますか?
Redis のメリットの 1 つが、クライアントが多数存在しており、さまざまな開発言語を多数サポートしている点です。 現在のクライアントの一覧については、 Radis クライアントに関するページをご覧ください。 さまざまな言語とクライアントを取り上げたチュートリアルについては、Azure Managed Redis の使用方法に関する記事を参照してください。
Azure Managed Redis にはローカル エミュレーターはありますか?
Azure Managed Redis 用のローカル エミュレーターはありません。 ただし、次の例に示すように、ローカル コンピューターでコミュニティ Redis のコピーを実行し、それに接続して、ローカル キャッシュ エミュレーターと同様のエクスペリエンスを得ることができます。
private static Lazy<ConnectionMultiplexer>
lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
{
// Connect to a locally running instance of Redis to simulate
// a local cache emulator experience.
return ConnectionMultiplexer.Connect("127.0.0.1:6379");
});
public static ConnectionMultiplexer Connection
{
get
{
return lazyConnection.Value;
}
}
Redis は Linux 上でネイティブに実行されますが、Linux 用 Windows サブシステムを使用して Windows マシン上で Redis を実行することもできます。 詳細については、Windows への Redis のインストールに関する記事を参照してください。
Redis コマンドの実行方法
Azure Managed Redis でサポートされない Redis コマンドのページに示されているコマンドを除き、Redis コマンドのページに示されているすべてのコマンドを使用できます。 Redis コマンドを実行するにはオプションがいくつかあります。
Redis コマンド ライン ツールを使用することもできます。 これらを使用するには、Azure Managed Redis での Redis コマンドライン ツールの使用のページを参照してください
Azure Managed Redis の MSDN クラス ライブラリ リファレンスが提供されないのはなぜですか?
Microsoft Azure Managed Redis は、広く普及しているインメモリ データ ストアである Redis がベースとなっています。 多くのプログラミング言語にさまざまな Redis クライアントを使用できます。 各クライアントは、Redis コマンドを使用して Azure Managed Redis インスタンスを呼び出す独自の API を持ちます。
各クライアントが異なるため、MSDN には、1 つに集約されたクラス参照がありません。 各クライアントで独自の参照ドキュメントが保持されます。 リファレンス ドキュメントのほかに、さまざまな言語とキャッシュ クライアントを使用して Azure Managed Redis を使用する方法が示されているチュートリアルもいくつか用意されています。 これらのチュートリアルにアクセスするには、Azure Managed Redis の使用方法に関するページとその関連記事を目次から見つけて参照してください。
Redis データベースとは
Redis データベースとは、単に同じ Redis インスタンス内でデータを論理的に切り離したものです。 キャッシュ メモリは、すべてのデータベースで共有され、特定のデータベースの実際のメモリ使用量は、そのデータベースに格納されているキー/値によって異なります。 現時点では、Azure Managed Redis はインスタンスごとに 1 つのデータベースのみをサポートしています。
関連するコンテンツ
Azure Managed Redis に関するその他の FAQ について説明します。