Før du svarer, har du noget imod at dele din RedisTemplate-implementeringskode? (Eller er dette genereret af @RedisHash-annotation?) Jeg er selv ny til Spring-Data-Redis og kendte ikke til @RedisHash-annotationen og vil gerne tjekke den ud.
Under alle omstændigheder, hvad der i bund og grund sker her, er, at Spring-Data-Redis-depotet indsætter Person-objektet i forskellige datastrukturer, der er naturligt understøttet af Redis til forskellige formål.
Redis understøtter forskellige datastrukturer såsom:
-
HashRedis opretter et kort over strengfelter og strengværdier for at repræsentere hele dit personobjekt. Hvis du gør
HGETALL persons:{your person id}
det vil vise alle de forskellige felter og værdier, der er knyttet til dit personobjektHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis indsætter den grundlæggende rå streng og indekserer enheder baseret på deres felt. Derfor var der mange
SET
operationer i din Redis DB. Du kan se indekser affirstName
oglastName
i dit datasætSET holding all ids known in the keyspace "persons"
-
ZSetThis er Redis-operation for
Sorted Sets
datastruktur. Hvilket er en ordnet samling af strenge. Fra 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.
Det ser ud til, at Spring Data automatisk indsætter lokationsdataene som et sorteret sæt for at optimere CRUD-operationer.
Du kan læse mere her:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types