Redis
 sql >> Base de données >  >> NoSQL >> Redis

Redis - Comment la clé HASH et SET et ZSET sont liées sur la sauvegarde CrudRepository ?

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 :

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

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

  2. 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 de firstName et lastName dans votre jeu de données

    SET holding all ids known in the keyspace "persons"

  3. 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 Documentations

    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.

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