目的:使用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 链接呢??
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
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;
Nampaknya mempunyai kolam sambungannya sendiri
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.