Sebelum menjawab, maukah Anda membagikan kode implementasi RedisTemplate Anda? (Atau ini dihasilkan oleh anotasi @RedisHash?) Saya sendiri baru mengenal Spring-Data-Redis dan tidak mengetahui anotasi @RedisHash dan ingin memeriksanya.
Bagaimanapun, pada dasarnya apa yang terjadi di sini adalah bahwa repositori Spring-Data-Redis memasukkan objek Person dalam struktur data berbeda yang secara native didukung oleh Redis untuk tujuan yang berbeda.
Redis mendukung struktur data yang berbeda seperti:
-
HashRedis membuat peta bidang string dan nilai string untuk mewakili seluruh objek Person Anda.Jika Anda melakukan
HGETALL persons:{your person id}
itu akan menampilkan semua bidang dan nilai berbeda yang terkait dengan Objek orang AndaHASH holding property values for id "c5cfd49d-6688-4b83-a9b7-be55dd1c36ad" in keyspace "persons"
-
SetRedis menyisipkan string mentah dasar dan mengindeks entitas berdasarkan bidangnya. Karenanya ada banyak
SET
operasi di Redis DB Anda. Anda dapat melihat indeksfirstName
danlastName
di kumpulan data AndaSET holding all ids known in the keyspace "persons"
-
ZSetIni adalah operasi Redis untuk
Sorted Sets
struktur data. Yang merupakan kumpulan string yang berurutan. Dari Dokumentasi 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.
Sepertinya Spring Data secara otomatis memasukkan data lokasi sebagai kumpulan yang diurutkan untuk mengoptimalkan operasi CRUD.
Anda dapat membaca lebih lanjut di sini:
https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/README.md
https://redis.io/topics/data-types