Saya ingin tahu apa yang akan menjadi pendekatan yang lebih baik untuk membatalkan / memperbarui objek cache.
Prasyarat
- Memiliki server memcached jarak jauh (berfungsi sebagai cache untuk beberapa aplikasi)
- Semua server di-host oleh azure (wilayah afinitas, pusat data yang sama)
- Ukuran objek cache berkisar dari 200 byte hingga 50 kilobyte
Pendekatan 1 (simpan dalam cache secepatnya)
- Objek A dibuat -> simpan dalam database dan simpan dalam cache
- Objek A diminta oleh klien -> periksa keberadaan cache, jika tidak ambil dari database dan simpan di cache
- Objek A diperbarui -> simpan dalam database, simpan dalam cache
Pendekatan 1 tampaknya lebih mudah. Jika sesuatu dibuat, masukkan cache secepatnya. Terlepas dari seseorang akan membutuhkannya.
Pendekatan 2 (toko cache malas)
- Objek A dibuat -> simpan dalam basis data
- Objek A diminta oleh klien -> periksa keberadaan cache, jika tidak ambil dari database dan simpan di cache
- Objek A diperbarui -> simpan dalam basis data, hapus kunci dalam cache
Pendekatan 2 tampaknya lebih sadar akan memori. Dalam pendekatan ini hanya item yang diminta masuk ke cache.
Pertanyaan 1: Dalam pikiran kinerja, apa yang akan menjadi pendekatan yang lebih baik? Memori atau CPU belum masuk hitungan.
Pertanyaan 2: Apakah pemikiran saya semacam optimasi prematur?
Pertanyaan 3: Ada pemikiran lain? Pendekatan lain?
performance
azure
memcached
caching
bersembunyi
sumber
sumber
memcached mengelola objek dengan kebijakannya sendiri, objek yang di-cache akan kadaluwarsa jika tidak ada yang mengaksesnya atau memcached kehabisan memori. Oleh karena itu, pendekatan pertama Anda bukanlah ide yang baik karena objek Anda dalam memcached akan tetap tidak valid karena kehabisan memori saat Anda membuat objek.
Q1. Pendekatan 2 akan lebih baik dalam hal kinerja karena tidak mengirim objek ke memcached, meskipun peningkatan kinerja sangat sedikit.
Q2. Sulit dikatakan. Anggaplah Anda tahu hambatannya dan buatlah pendekatan yang tidak prematur.
Q3. Ada pendekatan lain seperti cache hanya memcached.
sumber