Redis memang cepat, tetapi pengambilan data yang terlalu sering dapat membebani server API. Terutama untuk data real-time yang pembaruannya tidak teratur tetapi harus sering diakses, diperlukan strategi cache yang efisien.
-
Masalah: Redis PubSub atau Keyspace Notification dapat membuat logika deteksi pembaruan dan pemrosesan pesan menjadi rumit atau menyebabkan pemborosan sumber daya.
-
Solusi: Invalidation Message yang didukung mulai Redis 6.0 adalah cara server mengelola cache klien.
- Setelah klien membaca key, jika klien lain mengubahnya, Redis akan mengirim pesan pembaruan agar cache dihapus.
-
Implementasi: Di bahasa Go, Invalidation Message dapat diterapkan menggunakan kombinasi redigo+ristretto atau library rueidis.
- redigo+ristretto memerlukan logika kustom, tetapi rueidis dapat diimplementasikan dengan sederhana melalui fungsi DoCache.
-
Hasil: Dalam penerapan nyata, kecepatan respons API meningkat hingga 82%, dan beban server Redis juga menurun. Pengelolaan client-side cache tetap diperlukan, tetapi efek peningkatan performanya sangat besar.
1 komentar
馃憖