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
SEToperace ve vaší databázi Redis. Můžete vidět indexyfirstNamealastNameve vaší datové saděSET holding all ids known in the keyspace "persons" -
ZSetToto je operace Redis pro
Sorted Setsdatová 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