Než odpovíte, nevadí vám sdílet svůj implementační kód RedisTemplate? (Nebo je to generováno anotací @RedisHash?) Sám jsem ve Spring-Data-Redis nový a neznal jsem anotaci @RedisHash a chci se na ni podívat.
V podstatě se zde děje to, že úložiště Spring-Data-Redis vkládá objekt Person do různých datových struktur nativně podporovaných Redis pro různé účely.
Redis podporuje různé datové struktury, například:
-
HashRedis vytvoří mapu řetězcových polí a řetězcových hodnot, které reprezentují celý váš objekt Person. Pokud to uděláte
HGETALL persons:{your person id}
zobrazí všechna různá pole a hodnoty spojené s objektem vaší osobyHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis vloží základní nezpracovaný řetězec a indexuje entity na základě jejich pole. Proto bylo mnoho
SET
operace ve vaší databázi Redis. Můžete vidět indexyfirstName
alastName
ve vaší datové saděSET holding all ids known in the keyspace "persons"
-
ZSetToto je operace Redis pro
Sorted Sets
datová struktura. Což je uspořádaná kolekce řetězců. Z dokumentace 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.
Vypadá to, že Spring Data automaticky vloží data o umístění jako seřazenou sadu pro optimalizaci operací CRUD.
Více si můžete přečíst zde:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types