Prima di rispondere, ti dispiace condividere il tuo codice di implementazione RedisTemplate? (O questo è generato dall'annotazione @RedisHash?) Sono nuovo di Spring-Data-Redis e non conoscevo l'annotazione @RedisHash e voglio verificarla.
Ad ogni modo, essenzialmente ciò che sta accadendo qui è che il repository Spring-Data-Redis sta inserendo l'oggetto Person in diverse strutture di dati supportate nativamente da Redis per scopi diversi.
Redis supporta diverse strutture di dati come:
-
HashRedis crea una mappa di campi stringa e valori di stringa per rappresentare l'intero oggetto Person. Se esegui
HGETALL persons:{your person id}
mostrerà tutti i diversi campi e valori associati al tuo Oggetto personaleHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis inserisce la stringa grezza di base e indicizza le entità in base al loro campo. Quindi c'erano molti
SET
operazioni nel tuo DB Redis. Puoi vedere gli indici difirstName
elastName
nel tuo set di datiSET holding all ids known in the keyspace "persons"
-
ZSetQuesta è l'operazione Redis per
Sorted Sets
struttura dati. Che è una raccolta ordinata di stringhe. Da Redis DocumentationsIn 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.
Sembra che Spring Data inserisca automaticamente i dati sulla posizione come un insieme ordinato per ottimizzare le operazioni CRUD.
Puoi leggere di più qui:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types