Azure Cache for Redis とは

完了

Azure Cache for Redis の簡単な概要から始めましょう。 この情報は、あなたの組織に適したソリューションであるかどうかを判断するのに役立ちます。

Redis とは

Redis は、広く使用されているオープンソースのキャッシュ ソリューションです。 これはメモリ内で実行される、キーと値のデータストアであり、データへのアクセスを高速化します。

通常、組織は Redis を使用してデータベース アプリを補完します。 Redis とバックエンド データベースを組み合わせると、アプリのパフォーマンスを大幅に向上させることができます。

キャッシュ ソリューションには何が必要ですか?

キャッシュ ソリューションでは、次の 4 つの重要な要件に対処する必要があります。

  • パフォーマンス。 すべてのキャッシュ ソリューションの主要な要件は、負荷が高い場合でもパフォーマンスを向上させることです。 理想的には、スループットを高め、待機時間を短縮する必要があります。
  • スケーラビリティ。 システムは、変更をすぐに読み込むために応答する必要があります。 架空の靴の会社では、販売促進を実行したときや 1 年の特定のタイミングで、需要が急激に増加する可能性があります。 スケーリングは自動で行われ、ダウンタイムなしで発生します。
  • 可用性。 すべてのキャッシュ ソリューションは高可用性である必要があります。 可用性は、コンポーネントの障害が発生した場合でも、アプリが最大限のパフォーマンスを確実に提供できるようにするのに役立ちます。
  • 地理的分散のサポート。 キャッシュ ソリューションによって、世界中のあらゆる場所で同じパフォーマンスとスケーリングのメリットが得られることが不可欠です。 この要件を満たすことは、データが地理的に分散している場合には困難になる可能性があります。

Azure Cache for Redis の定義

Azure Cache for Redis を使用すると、完全なマネージド サービスとして Redis を実装できます。

注意

Azure Cache for Redis は、選択した階層によっては、Redis のオープン ソース (OSS Redis) と、マネージド サービスとしての Redis Labs (Redis Enterprise) の商用製品の両方を提供します。

Azure Cache for Redis には、次のアプリケーション アーキテクチャ パターンが用意されています。

  • データ キャッシュ。 多くの場合、データベースはキャッシュに直接読み込むには大きすぎるため、"キャッシュ アサイド" パターンを使用するのが一般的です。 必要に応じて、データをキャッシュのみに読み込みます。

  • コンテンツ キャッシュ。 ほとんどの Web ページには、ヘッダー、フッター、バナーなどの頻繁には変更されない静的な項目が含まれています。 インメモリ コンテンツ キャッシュを使用すると、バックエンド データストアにアクセスする場合と比較して、静的コンテンツにすばやくアクセスできます。

  • セッション ストア。 このパターンは、ショッピング カートやユーザー履歴データに基づくその他のデータでよく使用されます。 Web アプリケーションでは、多くの場合、これらの項目をユーザーの Cookie に関連付けます。 Cookie に大量のデータを格納すると、パフォーマンスに悪影響を及ぼす可能性があります。 アプリは多くの場合、Cookie を使用してバックエンド データベースにユーザー データを照会するからです。 メモリ内キャッシュを使用してユーザーセッション情報を格納する方が、バックエンド データベースを使用するよりも高速です。

  • ジョブおよびメッセージ キュー。 アプリでは、多くの場合、タスクの実行に時間がかかるときにタスクをキューに追加します。 タスクに長時間実行される操作が含まれている場合は、通常、順番に実行されるようにキューに置かれます。 Azure Cache for Redis は、このアプリケーション パターンをサポートするための発行/サブスクライブ、メッセージ ストリーミング、またはキュー アーキテクチャを提供します。

    注意

    実行時間の長い操作は、通常は別のサーバーによって順番に処理されるように、キューに登録されます。

  • 分散トランザクション。 アプリによっては、バックエンドのデータストアで 1 つの操作として実行するためのコマンド一式が必要になる場合があります。 Azure Cache for Redis では、一連のコマンドを単一のトランザクションとして実行する方法をサポートしています。

    注意

    すべてのコマンドが成功するか、初期状態にロールバックされる必要があります。

Azure Cache for Redis 階層

次の 5 つの Azure Cache for Redis 階層から選択できます。

  • Basic 階層 レベルは 1 つの仮想マシン (VM) 上で実行され、サービス レベル アグリーメント (SLA) は含まれません。 この階層は、OSS Redis キャッシュに基づいています。

  • Standard 階層は、2 つのレプリケートされた VM 上で実行され、OSS Redis キャッシュに基づいています。

    重要

    Standard と Basic は、単一ノードのキャッシュです。 これらの階層は、重要ではないワークロードに対してのみ考慮する必要があります。

  • Premium 階層は、より強力な VM にデプロイされます。 この階層では、スループットの向上、低遅延、可用性の強化などの機能が提供されます。 この階層は、OSS Redis キャッシュに基づいています。

  • Enterprise レベルでは、Premium レベルよりも高い可用性と、Redis Labs の Redis Enterprise ソフトウェアを搭載したハイ パフォーマンスのキャッシュが提供されます。

  • Enterprise Flash 階層は、エンタープライズ階層に代わるコスト効果の高い方法であり、Redis Labs の Redis Enterprise ソフトウェアも備えています。 この階層は、Redis データ ストレージを不揮発性メモリに拡張します。これにより、1 GB あたりの総メモリ コストが削減されます。

すべての階層で次の機能をサポートします。

  • 転送中のデータの暗号化
  • ネットワークの分離
  • Scaling

Premium、Enterprise、および Enterprise フラッシュの階層では、次のような他の高度な機能もサポートされています。

  • クラスタリング。 高可用性と負荷分散を実現します。
  • データ永続化。 Redis でデータを保持し、スナップショットを作成してデータをバックアップできます。 これらのスナップショットは、ハードウェア障害が発生したときに読み込むことができます。
  • ゾーン冗長。 VM が複数の可用性ゾーンに分散されるため、回復性と可用性が向上します。
  • geo レプリケーション。 2 つの Premium Azure Cache for Redis インスタンスがリンクされ、データ レプリケーション関係が作られます。 このレプリケーションは、潜在的な障害復旧ソリューションを提供します。
  • インポートとエクスポート。 Azure Cache for Redis との間でデータのインポートやエクスポートを実行できます。 premium キャッシュからの Azure Cache for Redis データベース (RDB) のスナップショットを、 Azure Storage アカウント blob にインポートまたはエクスポートできます。

次の機能は、エンタープライズ階層でのみ使用できます。

  • RediSearch。 フルテキスト検索エンジンを備えた強力なインデックス作成およびクエリ エンジンが用意されています。
  • RedisBloom。 確率論的データ構造体のサポートを提供します。
  • RedisTimeSeries。 大量のデータをハイ パフォーマンスで取り込み、クエリを実行できます。
  • アクティブ geo レプリケーション。 競合のないレプリケートされたデータ型を実装します。 複数のキャッシュ インスタンスへの書き込みをサポートします。 必要に応じて、変更のマージと競合解決を管理します。