Bevor Sie antworten, haben Sie etwas dagegen, Ihren RedisTemplate-Implementierungscode zu teilen? (Oder wird dies von der @RedisHash-Annotation generiert?) Ich bin selbst neu bei Spring-Data-Redis und kannte die @RedisHash-Annotation nicht und möchte sie überprüfen.
Wie auch immer, im Wesentlichen passiert hier, dass das Spring-Data-Redis-Repository das Person-Objekt in verschiedene Datenstrukturen einfügt, die von Redis für verschiedene Zwecke nativ unterstützt werden.
Redis unterstützt verschiedene Datenstrukturen wie:
-
HashRedis erstellt eine Zuordnung von Zeichenfolgenfeldern und Zeichenfolgenwerten, um Ihr gesamtes Personenobjekt darzustellen. Wenn Sie
HGETALL persons:{your person id}
ausführen Es zeigt alle verschiedenen Felder und Werte, die mit Ihrem Personenobjekt verknüpft sindHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis fügt die grundlegende Rohzeichenfolge ein und indiziert Entitäten basierend auf ihrem Feld. Daher gab es viele
SET
Vorgänge in Ihrer Redis-DB. Sie können Indizes vonfirstName
sehen undlastName
in Ihrem DatensatzSET holding all ids known in the keyspace "persons"
-
ZSetDies ist eine Redis-Operation für
Sorted Sets
Datenstruktur. Das ist eine geordnete Sammlung von Zeichenfolgen. Aus Redis-DokumentationenIn 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.
Anscheinend fügt Spring Data die Standortdaten automatisch als sortierten Satz ein, um CRUD-Operationen zu optimieren.
Hier können Sie mehr lesen:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types