Rumah > Soal Jawab > teks badan
目的:使用redis来缓存网站的固定内容数据在node开启的时候
遇到的问题:
var redis = require('redis'),
client = redis.createClient();
client.hset([hash, hashtest, value],function(err,reply){
callback(err,reply);
// client.quit();
});
client.hget([hash,hashtest],function(err,reply){
callback(err,reply);
// client.quit();
})
每次在请求完成以后是否需要client.quit 关闭链接,然后在请求的时候再次createClient 链接呢??
阿神2017-04-24 09:13:02
Terdapat dua konfigurasi yang berkaitan dengan ini dalam fail konfigurasi:
maxclients digunakan untuk menetapkan sambungan pelanggan yang disokong maksimum, yang akan ditolak jika melebihi ini digunakan untuk menetapkan berapa banyak sambungan klien redis anda boleh menyokong masa yang sama; (sudah tentu, sebagai tambahan kepada nilai ini, anda juga perlu melihat tetapan had sistem Linux)
tetapan tamat masa, digunakan untuk menetapkan berapa lama selepas pengguna menyambung, jika tiada permintaan redis dicetuskan, sambungan akan ditutup secara aktif daripada pelayan untuk menyimpan Sumber sistem
# Set the max number of connected clients at the same time. By default
# this limit is set to 10000 clients, however if the Redis server is not
# able to configure the process file limit to allow for the specified limit
# the max number of allowed clients is set to the current file limit
# minus 32 (as Redis reserves a few file descriptors for internal uses).
#
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
# maxclients 10000
# Set the max number of connected clients at the same time. By default
# this limit is set to 10000 clients, however if the Redis server is not
# able to configure the process file limit to allow for the specified limit
# the max number of allowed clients is set to the current file limit
# minus 32 (as Redis reserves a few file descriptors for internal uses).
#
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
# maxclients 10000
# Close the connection after a client is idle for N seconds (0 to disable)
timeout 0
Untuk permintaan sambungan redis, biasanya terdapat dua senario:
Pelayan yang mencetuskan permintaan pengguna adalah terhad (contohnya, dalam lingkungan 100), jadi anda boleh menetapkan tamat masa kepada 0, supaya permintaan sambungan redis sentiasa sah dan tidak akan diputuskan selepas menyambung sekali sahaja; selepas perkhidmatan dimulakan semula atau ralat berlaku Sambung semula
Sebilangan besar pengguna meminta secara serentak Dalam kes ini, tamat masa boleh ditetapkan dalam beberapa minit (ditentukan mengikut perniagaan), dan pelanggan tidak menutup sambungan secara aktif selepas menyambung sambungan didapati ditutup (kerana tamat masa dan telah ditutup oleh pelayan) sebelum meminta sambungan;
阿神2017-04-24 09:13:02
Tidak disyorkan untuk menyambung semula untuk setiap permintaan. Ia hanya membuang masa membina pautan. Adalah lebih baik untuk mewujudkan pautan (createClient) dalam setiap model dan menyimpannya di sana. Oleh kerana ciri pemprosesan satu benang redis, kumpulan sambungan itu sendiri tidak banyak digunakan untuk redis.