Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Redis - Como as chaves HASH e SET e ZSET estão relacionadas no salvamento do CrudRepository?


Antes de responder, você se importa de compartilhar seu código de implementação do RedisTemplate? (Ou isso é gerado pela anotação @RedisHash?) Eu sou novo no Spring-Data-Redis e não conhecia a anotação @RedisHash e quero verificá-la.

De qualquer forma, essencialmente o que está acontecendo aqui é que o repositório Spring-Data-Redis está inserindo o objeto Person em diferentes estruturas de dados suportadas nativamente pelo Redis para diferentes propósitos.

O Redis suporta diferentes estruturas de dados, como:

  1. HashRedis cria um mapa de campos de string e valores de string para representar todo o seu objeto Person.Se você fizer HGETALL persons:{your person id} ele mostrará todos os diferentes campos e valores associados ao seu objeto pessoal

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

  2. SetRedis insere a string bruta básica e indexa entidades com base em seu campo. Portanto, havia muito SET operações em seu banco de dados Redis. Você pode ver índices de firstName e lastName em seu conjunto de dados

    SET holding all ids known in the keyspace "persons"

  3. ZSetEsta é a operação Redis para Sorted Sets estrutura de dados. Que é uma coleção ordenada de strings.From 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.

Parece que o Spring Data insere automaticamente os dados de localização como um conjunto classificado para otimizar as operações CRUD.

Você pode ler mais aqui:

https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md

https://redis.io/topics/data-types