Redis
Spring Data でサポートされている Key-Value ストアの 1 つは Redis (英語) です。Redis プロジェクトのホームページを引用するには:
Redis は、高度な Key-Value ストアです。memcached に似ていますが、データセットは揮発性ではなく、値は memcached とまったく同じように文字列にすることができますが、リスト、セット、順序付きセットも使用できます。このすべてのデータ型は、要素のプッシュ / ポップ、要素の追加 / 削除、サーバー側の和集合、共通部分、セット間の差異などを実行するためのアトミック操作で操作できます。Redis は、さまざまな種類の並べ替え機能をサポートしています。
Spring Data Redis は、Spring アプリケーションから Redis への簡単な構成とアクセスを提供します。これは、ストアと対話するための低レベルと高レベルの両方の抽象化を提供し、ユーザーをインフラストラクチャの関心事から解放します。
Redis に対する Spring Data サポートには、幅広い機能が含まれています。
RedisTemplate
およびReactiveRedisTemplate
ヘルパークラスは、Redis の一般的な操作を実行する際の生産性を向上させます。オブジェクトと値の間の統合直列化が含まれます。Spring のポータブルデータアクセス例外階層への例外変換。
カスタムクエリメソッドのサポートを含む、リポジトリインターフェースの自動実装。
機能豊富なオブジェクトマッピングと Spring の変換サービスが統合されました。
他のメタデータ形式をサポートするために拡張可能なアノテーションベースのマッピングメタデータ。
Spring のキャッシュ抽象化による Redis キャッシュの統合。
Redis Pub/ サブメッセージングおよび Redis ストリームリスナー。
Java の場合は Redis コレクションの実装 (
RedisList
やRedisSet
など)。
なぜ Spring Data Redis ?
Spring Framework は、主要なフルスタック Java/JEE アプリケーションフレームワークです。依存性注入、AOP、ポータブルサービスの抽象化を使用することで、軽量のコンテナーと非侵襲的なプログラミングモデルを提供します。
NoSQL [Wikipedia] (英語) ストレージシステムは、水平方向のスケーラビリティと速度に関して、従来の RDBMS に代わるものを提供します。実装に関しては、Key-Value ストアは NoSQL スペースで最大の(そして最も古い)メンバーの 1 つを表します。
Spring Data Redis(SDR)フレームワークは、Spring の優れたインフラストラクチャサポートを通じてストアとの対話に必要な冗長タスクと定型コードを排除することにより、Redis キー値ストアを使用する Spring アプリケーションを簡単に作成できるようにします。
Redis は高レベルのビューをサポートします
Redis サポートは、いくつかのコンポーネントを提供します。ほとんどのタスクでは、高レベルの抽象化とサポートサービスが最良の選択です。いつでも、レイヤー間を移動できることに注意してください。例: Redis と直接通信するために、低レベルの接続(またはネイティブライブラリ)を取得できます。