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
SET
operacje w Twojej bazie danych Redis. Możesz zobaczyć indeksyfirstName
inazwisko
w zestawie danychSET przechowujący wszystkie identyfikatory znane w przestrzeni klawiszy „osoby”
-
ZSetTo jest operacja Redis dla
zestawów posortowanych
struktura 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