Java および Spring Boot アプリケーション向け Redis について学習する

完了

Azure Cache for Redis インスタンスをデプロイする場合、以下のセクションを読んで、次のテクノロジの詳細を確認してください。

  • Redis と Azure Cache for Redis。
  • Java および Spring Boot アプリケーションで使用する Redis。
  • Spring Data Redis 分散キャッシュ。

Redis と Azure Cache for Redis

Redis は、BSD ライセンスが適用されたオープンソースの分散型メモリ内データ ストアであり、オプションの持続性を備え、キャッシュとメッセージ ブローカーとして機能します。 Redis は最も一般的なキーと値のデータベースの 1 つであり、使いやすさ、パフォーマンス、スケーラビリティを備えているため、アプリケーション開発者にとって優れた選択肢となっています。

Azure Cache for Redis は、Azure によってクラウド内で保守および運用される Redis のマネージド バージョンです。 Azure Cache for Redis は、毎秒数百万件の要求を処理する優れたスループットとパフォーマンスなど、Redis のすべての利点を備えています。 また、Azure では、自動パッチ、更新プログラム、スケーリング、プロビジョニングなど、マネージド クラウド サービスの利点も提供されます。

Azure Cache for Redis には、複数のサービス レベルが用意されています。 高度なレベルでは、最も重要なワークロードのクラスタリング、geo レプリケーション、高可用性が提供されます。

Azure Cache for Redis のユース ケース

Redis と Azure Cache for Redis の主なユース ケースは次のとおりです。

  • "分散キャッシュ" は、SQL データベースに依存するアプリケーションを高速化します。 Redis クラスターのスケーリングはデータベースのスケーリングより低コストであるため、アプリケーションのコストを削減することもできます。
  • "HTTP セッション データ ストア" にはセッション データが格納されます。これにより、セッションベースのアプリケーションのスケーリングが可能になります。 JavaServer Faces (JSF) を使用するアプリケーション、またはセキュリティ データをユーザー セッションに格納するアプリケーションでは、通常、このメカニズムが使用されます。
  • "メッセージ ブローカー" ソリューションは、発行と購読、またはキューのアーキテクチャを実装します。

Java で Redis を使用する

Redis では、Java 開発者向けの公式ライブラリは提供されていませんが、いくつかのオープンソース ライブラリがあります。 Java 開発者が行う主な決定事項の 1 つは、ニーズに最も適したライブラリの選択です。 最も一般的なライブラリは、次のとおりです。

  • Jedis は最も使用されているシンプルで使いやすいライブラリです。
  • Lettuce は、Spring Data for Redis にバンドルされているライブラリであるため、このモジュールではこれを使用します。 Lettuce は、非同期サポートに優れています。これは、リアクティブな Spring アプリケーションを作成する場合に重要です。
  • Redisson は、最も高度な Redis クライアントです。 Hibernate 二次キャッシュの機能が必要な場合、そのキャッシュとして Redisson を使用できます。

Spring Data Redis を使用して分散キャッシュを作成する

Redis を Spring Boot で使用して (通常は Spring Initializr で使用) 分散キャッシュを作成するには、次の 3 つの主要タスクを実行します。

  1. Spring Data Redis ライブラリをアプリケーションに追加する。
  2. Azure Cache for Redis インスタンスに接続するように application.yml ファイルを構成する。
  3. Spring Data Redis を使用してキャッシュからデータを格納および取得するビジネス ロジックをコーディングする。

現在のモジュールでは Lettuce ライブラリが使用されますが、高度な構成が必要な場合を除いて、このライブラリを直接使用する必要はありません。 データ アクセス コードは、ほとんどの Spring 開発者が使い慣れているメカニズムを使用して、Spring Data によって処理されます。 また、Spring Data を使用すると、Java Persistence API (JPA) を使用して SQL データベースにアクセスしたり、MongoDB などの NoSQL データベースにアクセスしたりすることもできます。

Spring Data では、次のクラスを作成する必要があります。

  • データを保持する Java Bean。 特定のキーを使用して Redis データを格納および取得するには、このクラスに @RedisHash Java 注釈を付けます。

  • Spring リポジトリ。 このリポジトリは、データが格納される Java Bean に対するデータベースの作成、取得、更新、削除の操作 (CRUD) を実行できる特定の Java クラスです。 たとえば、Bean の 1 つのインスタンスを格納したり、Bean の一覧を取得したりすることができます。

    この Spring リポジトリは、任意の標準 Spring Bean に挿入できます。 たとえば、このリポジトリを、リポジトリ データを格納およびアクセスする Spring MVC REST コントローラーに挿入できます。

次のユニットに進んで、Spring Data Redis を使用した分散キャッシュを使用する Spring Boot アプリケーションを作成します。 Azure Cache for Redis キャッシュのデプロイが完了するのを待っている間に、アプリケーションを作成できます。