Bisakah database yang lambat menyebabkan aplikasi web menahan koneksi memcache?

0

Saya memiliki aplikasi php yang menggunakan memcache dan database back-end

Kadang-kadang kita melihat "koneksi saat ini" dalam memcache dan tidak dapat menentukan mengapa.

Mengapa php "meleset" dari memcache dan perlu pergi ke backend db, apakah itu membuat koneksi cache mem terbuka sampai data dikembalikan?

Saya melihat "Terlalu banyak koneksi terbuka" di log memcache saya. Saya tahu bahwa saya perlu memperbaiki beberapa hal dengan DB back end saya tetapi saya bertanya-tanya apakah DB yang lambat akan menyebabkan koneksi memcache tetap terbuka.

Terima kasih

ckliborn
sumber

Jawaban:

0

Itu tergantung pada desain Webapp Anda dan bagaimana Anda mengakses memached.

Jika Anda menggunakan php dengan pec-memcached, klien memcache bahkan tidak tahu dari mana data itu berasal.
Anda mungkin membuat $m->get("keyname")panggilan, saya kira Anda mengambil data dari database dan menulisnya untuk memcache jika panggilan kembali salah.
Dalam skenario itu, bagaimana klien atau server memcache tahu apa yang Anda lakukan?

Jadi, jawaban singkat: Tidak, dalam keadaan umum memcache tidak akan membuat koneksi tetap terbuka.

Niko SP
sumber
Jika kami kehilangan dan mengambil data dari DB, bagaimana data akan ditempatkan di memcache?
ckliborn
Paling umum dalam skenario ini adalah untuk mengambil dari memcache, jika itu gagal mengambil dari tempat lain dan menulis ke memcache. Dalam siklus ini tidak ada tempat di mana koneksi akan tetap dibuka oleh klien memcache. Itu sebabnya saya menulis, itu tergantung pada desain webapp Anda, mungkin itu cacat.
Niko SP