Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis - Wie hängen die Schlüssel HASH und SET und ZSET im CrudRepository-Speicher zusammen?

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:

  1. 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 sind

    HASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"

  2. 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 von firstName sehen und lastName in Ihrem Datensatz

    SET holding all ids known in the keyspace "persons"

  3. ZSetDies ist eine Redis-Operation für Sorted Sets Datenstruktur. Das ist eine geordnete Sammlung von Zeichenfolgen. Aus Redis-Dokumentationen

    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.

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