Czy masz coś przeciwko udostępnieniu kodu implementacji RedisTemplate? (Czy jest to generowane przez adnotację @RedisHash?) Sam jestem nowy w Spring-Data-Redis i nie wiedziałem o adnotacji @RedisHash i chcę to sprawdzić.
W każdym razie zasadniczo to, co się tutaj dzieje, polega na tym, że repozytorium Spring-Data-Redis wstawia obiekt Person do różnych struktur danych natywnie obsługiwanych przez Redis do różnych celów.
Redis obsługuje różne struktury danych, takie jak:
-
HashRedis tworzy mapę pól ciągów i wartości ciągów, aby reprezentować cały obiekt Person. pokaże wszystkie różne pola i wartości związane z Twoją osobą Obiekt
HASH przechowujący wartości właściwości dla identyfikatora „c5cfd49d-6688-4b83-a9b7-be55dd1c36ad” w przestrzeni kluczy „osoby” -
SetRedis wstawia podstawowy nieprzetworzony ciąg i indeksuje jednostki na podstawie ich pola. Stąd było dużo
SEToperacje w Twojej bazie danych Redis. Możesz zobaczyć indeksyfirstNameinazwiskow zestawie danychSET przechowujący wszystkie identyfikatory znane w przestrzeni klawiszy „osoby” -
ZSetTo jest operacja Redis dla
zestawów posortowanychstruktura danych. Który jest uporządkowanym zbiorem ciągów. Z dokumentacji RedisKrótko mówiąc, dzięki posortowanym zestawom możesz wykonywać wiele zadań z doskonałą wydajnością, które są naprawdę trudne do modelowania w innych rodzajach baz danych.
Wygląda na to, że Spring Data automatycznie wstawia dane lokalizacji jako posortowany zestaw, aby zoptymalizować operacje CRUD.
Możesz przeczytać więcej tutaj:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types