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:
-
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 personobjektHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
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örfirstName
ochlastName
i din datamängdSET holding all ids known in the keyspace "persons"
-
ZSetThis är Redis-operation för
Sorted Sets
datastruktur. Vilket är en beställd samling av strängar. Från Redis DocumentationsIn 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