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:
-
HashRedis cria um mapa de campos de string e valores de string para representar todo o seu objeto Person.Se você fizerHGETALL 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"
-
SetRedis insere a string bruta básica e indexa entidades com base em seu campo. Portanto, havia muitoSET
operações em seu banco de dados Redis. Você pode ver índices defirstName
elastName
em seu conjunto de dados
SET holding all ids known in the keyspace "persons"
-
ZSetEsta é a operação Redis paraSorted 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