Antes de responder, ¿le importaría compartir su código de implementación de RedisTemplate? (¿O esto es generado por la anotación @RedisHash?) Soy nuevo en Spring-Data-Redis y no conocía la anotación @RedisHash y quiero verificarla.
De todos modos, esencialmente lo que está sucediendo aquí es que el repositorio Spring-Data-Redis está insertando el objeto Person en diferentes estructuras de datos compatibles de forma nativa con Redis para diferentes propósitos.
Redis admite diferentes estructuras de datos como:
-
HashRedis crea un mapa de campos de cadena y valores de cadena para representar todo su objeto Persona. Si hace
HGETALL persons:{your person id}
mostrará todos los diferentes campos y valores asociados con su objeto de personaHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis inserta la cadena sin procesar básica e indexa las entidades en función de su campo. Por lo tanto, hubo muchos
SET
operaciones en su Redis DB. Puede ver los índices defirstName
ylastName
en su conjunto de datosSET holding all ids known in the keyspace "persons"
-
ZSetEsta es la operación de Redis para
Sorted Sets
estructura de datos. Que es una colección ordenada de cadenas. De la documentación de RedisIn 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 Spring Data inserta automáticamente los datos de ubicación como un conjunto ordenado para optimizar las operaciones CRUD.
Puedes leer más aquí:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/tipos-de-datos