Avant de répondre, cela vous dérangerait-il de partager votre code d'implémentation RedisTemplate ? (Ou cela est généré par l'annotation @RedisHash ?) Je suis moi-même nouveau sur Spring-Data-Redis et je ne connaissais pas l'annotation @RedisHash et je veux la vérifier.
Quoi qu'il en soit, ce qui se passe essentiellement ici, c'est que le référentiel Spring-Data-Redis insère l'objet Person dans différentes structures de données nativement prises en charge par Redis à des fins différentes.
Redis prend en charge différentes structures de données telles que :
-
HashRedis crée une carte de champs de chaîne et de valeurs de chaîne pour représenter l'intégralité de votre objet Person.If you do
HGETALL persons:{your person id}
il affichera tous les différents champs et valeurs associés à votre objet personneHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis insère la chaîne brute de base et indexe les entités en fonction de leur champ. Il y avait donc beaucoup de
SET
opérations dans votre base de données Redis. Vous pouvez voir les index defirstName
etlastName
dans votre jeu de donnéesSET holding all ids known in the keyspace "persons"
-
ZSetIl s'agit d'une opération Redis pour
Sorted Sets
Structure de données. Qui est une collection ordonnée de chaînes.De 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.
On dirait que Spring Data insère automatiquement les données de localisation sous la forme d'un ensemble trié pour optimiser les opérations CRUD.
Vous pouvez en savoir plus ici :
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types