答える前に、RedisTemplate実装コードを共有してもよろしいですか? (または、これは@RedisHashアノテーションによって生成されますか?)私はSpring-Data-Redisを初めて使用し、@ RedisHashアノテーションを知らなかったので、チェックアウトしたいと思います。
とにかく、ここで本質的に起こっていることは、Spring-Data-Redisリポジトリが、さまざまな目的でRedisによってネイティブにサポートされているさまざまなデータ構造にPersonオブジェクトを挿入していることです。
Redisは、次のようなさまざまなデータ構造をサポートしています。
-
HashRedisは、Personオブジェクト全体を表す文字列フィールドと文字列値のマップを作成します。
HGETALL persons:{your person id}
を実行する場合 個人オブジェクトに関連付けられているさまざまなフィールドと値がすべて表示されますHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedisは、基本的な生の文字列を挿入し、フィールドに基づいてエンティティにインデックスを付けます。したがって、多くの
SET
がありました RedisDBでの操作。firstName
のインデックスを見ることができます およびlastName
データセット内SET holding all ids known in the keyspace "persons"
-
ZSetこれは
Sorted Sets
のRedis操作です データ構造。これは文字列の順序付けられたコレクションです。RedisドキュメントからIn short with sorted sets you can do a lot of tasks with great performance that are really hard to model in other kind of databases.
Spring Dataは、CRUD操作を最適化するために、位置データを並べ替えられたセットとして自動的に挿入するようです。
詳細はこちらをご覧ください:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types