sql >> Base de Datos >  >> NoSQL >> Redis

Redis:¿cómo se relacionan las claves HASH, SET y ZSET en el guardado de CrudRepository?

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:

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

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

  2. 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 de firstName y lastName en su conjunto de datos

    SET holding all ids known in the keyspace "persons"

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

    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 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