Seperti yang ditunjukkan judulnya, bahkan setelah membaca dokumentasi, tidak jelas bagi saya apa perbedaan antara unref()
, quit()
dan end()
.
end()
sepertinya menutup koneksi tanpa menunggu semua soket ditutup.
unref()
sepertinya menunggu hingga semua perintah berakhir.
quit()
sepertinya mirip dengan unref()
.
unref()
tidak memiliki batas waktu, apakah dijamin akan berakhir atau haruskah saya menetapkan batas waktu?end
dipanggil tanpa syarat dari yang mana saya panggil?end()
dirancang untuk digunakan di mana Anda menghentikan aplikasi SEKARANG, misalnya penangan uncaughtException
, dan tidak mengantisipasi atau ingin menunggu (jika ada) balasan dari perintah yang mungkin telah Anda kirimkan yang belum kembali dari Redis.
quit()
dirancang untuk saat Anda selesai dengan koneksi ini dan ingin menutupnya, tetapi biarkan aktivitas yang belum selesai diselesaikan. Dalam kebanyakan kasus jika Anda mencoba mengakhiri koneksi, gunakan quit()
unref()
tidak dirancang untuk bersaing dengan opsi-opsi ini, tetapi hanya untuk memungkinkan aplikasi Anda keluar jika satu - unref
sini http://nodejs.org/api/net.html#net_server_unref
Kemudian acara end
hanya dikeluarkan dari saat Anda menelepon quit()
. Tidak yakin mengapa tanpa penelitian.
jika Anda tidak menelepon berhenti apa pun yang terjadi.
@techsin Jika Anda tidak pernah menutup koneksi redis, aplikasi node Anda akan duduk dan menunggu selamanya terhubung ke server Redis.
bagaimana jika aplikasi telah ditutup, tetapi server redis masih aktif. apakah itu membuat server redis menyimpan referensi? apakah itu semacam kebocoran memori
maaf saya tidak jelas pertama kali
Tidak, jika aplikasi ditutup, koneksi klien akan terputus dan server Redis akan menghentikan referensi di sisinya, jadi tidak ada kebocoran memori.
Komentar yang paling membantu
end()
dirancang untuk digunakan di mana Anda menghentikan aplikasi SEKARANG, misalnya penanganuncaughtException
, dan tidak mengantisipasi atau ingin menunggu (jika ada) balasan dari perintah yang mungkin telah Anda kirimkan yang belum kembali dari Redis.quit()
dirancang untuk saat Anda selesai dengan koneksi ini dan ingin menutupnya, tetapi biarkan aktivitas yang belum selesai diselesaikan. Dalam kebanyakan kasus jika Anda mencoba mengakhiri koneksi, gunakanquit()
unref()
tidak dirancang untuk bersaing dengan opsi-opsi ini, tetapi hanya untuk memungkinkan aplikasi Anda keluar jika satu -unref
sini http://nodejs.org/api/net.html#net_server_unref