node 使用 redis 来缓存数据,需要每次请求都创建链接吗?
PHP中文网
PHP中文网 2017-04-24 09:11:02
0
3
781

目的:使用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 链接呢??

PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
阿神

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:

  1. 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

  2. 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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan