Salah satu hal yang Anda pelajari dengan cepat saat bekerja dengan redis adalah Anda dapat mendesain struktur data sesuai kebutuhan pengaksesan Anda, khususnya dalam hal relasi (ini bukan database relasional sama sekali)
Tidak ada cara untuk mencari berdasarkan "nilai" dengan kompleksitas waktu O(1) seperti yang telah Anda perhatikan, tetapi ada cara untuk mendekati apa yang Anda gambarkan menggunakan redis. Inilah yang saya sarankan:
- Simpan data pengguna Anda menurut id pengguna (misalnya hash) seperti yang sudah Anda lakukan.
- Memiliki set tambahan untuk setiap id dosen yang berisi semua id pengguna yang sesuai dengan id dosen yang bersangkutan.
Ini mungkin tampak seperti menduplikasi data relasi, karena data pengguna Anda harus menyimpan id kuliah, dan data kuliah Anda akan menyimpan id pengguna, tetapi itulah harga (kecil) yang harus dibayar jika seseorang ingin membangun relasi dalam waktu singkat. -penyimpanan data relasional seperti redis. Dalam istilah praktis ini bekerja dengan baik; memori jarang menjadi hambatan untuk kumpulan data berukuran kecil (pikirkan ribuan id).
Untuk mendapatkan gambaran yang lebih baik tentang bagaimana orang menggunakan redis untuk memodelkan aplikasi dengan relasi, saya sarankan membaca Desain dan implementasi klon Twitter sederhana dan kode sumber Lamernews, keduanya ditulis oleh penulis redis Salvatore Sanfilippo.