Zou u, voordat u antwoordt, uw RedisTemplate-implementatiecode willen delen? (Of wordt dit gegenereerd door @RedisHash-annotatie?) Ik ben zelf nieuw bij Spring-Data-Redis en kende de @RedisHash-annotatie niet en wil het uitproberen.
Hoe dan ook, wat hier in wezen gebeurt, is dat de Spring-Data-Redis-repository het Person-object invoegt in verschillende gegevensstructuren die native worden ondersteund door Redis voor verschillende doeleinden.
Redis ondersteunt verschillende datastructuren zoals:
-
HashRedis maakt een kaart van tekenreeksvelden en tekenreekswaarden om uw hele Persoonsobject weer te geven. Als u
HGETALL persons:{your person id}
doet het toont alle verschillende velden en waarden die aan uw persoonsobject zijn gekoppeldHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis voegt de ruwe basistekenreeks in en indexeert entiteiten op basis van hun veld. Er waren dus veel
SET
bewerkingen in uw Redis DB. U kunt indexen vanfirstName
. zien enlastName
in je datasetSET holding all ids known in the keyspace "persons"
-
ZSetThis is Redis-bewerking voor
Sorted Sets
data structuur. Dat is een geordende verzameling strings.Van 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.
Het lijkt erop dat Spring Data automatisch de locatiegegevens invoegt als een gesorteerde set om CRUD-bewerkingen te optimaliseren.
U kunt hier meer lezen:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types