sql >> Databasteknik >  >> NoSQL >> Redis

Redis - Hur hänger nyckeln HASH och SET och ZSET ihop på CrudRepository save?

Innan du svarar, har du något emot att dela din RedisTemplate-implementeringskod? (Eller genereras detta av @RedisHash-kommentaren?) Jag är ny på Spring-Data-Redis själv och kände inte till @RedisHash-kommentaren och vill kolla in den.

Hur som helst, vad som händer här är att Spring-Data-Redis-förrådet infogar Person-objektet i olika datastrukturer som stöds av Redis för olika ändamål.

Redis stöder olika datastrukturer som:

  1. HashRedis skapar en karta över strängfält och strängvärden för att representera hela ditt personobjekt. Om du gör HGETALL persons:{your person id} den kommer att visa alla olika fält och värden som är associerade med ditt personobjekt

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

  2. SetRedis infogar den grundläggande råsträngen och indexerar enheter baserat på deras fält. Därför fanns det många SET operationer i din Redis DB. Du kan se index för firstName och lastName i din datamängd

    SET holding all ids known in the keyspace "persons"

  3. ZSetThis är Redis-operation för Sorted Sets datastruktur. Vilket är en beställd samling av strängar. Från 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.

Verkar som Spring Data automatiskt infogar platsdata som en sorterad uppsättning för att optimera CRUD-operationer.

Du kan läsa mer här:

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

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




  1. Översikt över MongoDB Database Profiler

  2. Programmatisk uppdatering av fält i Mongo och Meteor

  3. Hur man använder Redis Hashes

  4. BadValue Ogiltigt eller ingen användarspråk inställd. Se till att miljövariablerna LANG och/eller LC_* är korrekt inställda