Redis untuk cache dan Strategi Caching nya.

Photo by Chris Yang on Unsplash

Untuk urusan cache saya serahkan ke redis.

Redis adalah tools open source untuk menyimpan data in-memory. Sering di gunakan untuk database dan cache.

https://redis.io/

Saya sendiri selalu menggunakan redis ketika ingin melakukan cache. Karena keandalan dan kecepatan menulis dan membaca nya yang luar biasa, sangat pantas untuk kita gunakan sebagai tools caching.

Redis Logo

Saya sudah membanding kan proses pembacaan terhadap 1000 baris data di mysql dan redis, memiliki perbedaan yang signifikan. ketika mengakses data dengan mysql membutuhkan waktu sekitar 10–20 ms, sedangkan dengan redis hanya memakan waktu 4–5 ms.

Kenapa redis bisa secepat itu? karena data nya bersifat in-memory. Berbeda dengan mysql yang data nya di simpan di hard disk.

Bagaimana strategi caching yang saya gunakan?

Begini strategi nya.

Ketika user mengakses sebuah route GET yang gunanya adalah menampilkan data dari database, sebelum mengambil data nya dari database misal mysql, cek dulu di redis nya apakah ada cache nya. Jika ada cache nya, maka gunakan cache nya, jika tidak ada maka lanjut ambil data ke database mysql, lalu lakukan caching terhadap datanya.

Ketika user selanjutnya ingin mengakses route GET itu lagi, maka akan mengambil data nya lewat redis, bukan lagi lewat database mysql.

Lalu bagaimana jika terjadi perubahan data? misal kita ubah atau di delete?

Yang saya lakukan adalah langsung menghapus saja cache nya. Biarkan nanti melakukan caching ulang ketika user kembali mengakses route GET.

Sebenarnya ada banyak strategi caching lain yang mungkin lebih baik dari ini. Tapi karena ini yang menurut saya paling mudah, maka saya lakukan yang ini hehe.


Ini adalah source code middleware yang saya gunakan ketika membuat web API dengan expressjs.

https://gist.github.com/haidarafif0809/5c29004acdef108b9610c7567ac63960

Mau coba menggunakan redis sebagai tools cache? Silahkan copy paste aja code di atas untuk di coba di aplikasi expressjs kamu.

Bingung cara implementasi nya ? Jangan sungkan untuk daftar email di bawah atau langsung kontak saya aja di facebook.

https://upscri.be/4a8a3c/

Tolong Like dan Share ya !

Leave a Reply

Your email address will not be published. Required fields are marked *