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

目的:使用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级讲师

répondre à tous(3)
阿神

Il existe deux configurations liées à cela dans le fichier de configuration :
maxclients est utilisé pour définir le nombre maximal de connexions client prises en charge, qui seront rejetées en cas de dépassement. Ceci est utilisé pour définir le nombre de connexions que votre client Redis peut prendre en charge ; en même temps ; (bien sûr, en plus de cette valeur, vous devez également regarder le paramètre de limite du système Linux)
paramètre de délai d'attente, utilisé pour définir la durée après la connexion d'un utilisateur et sans demande Redis est déclenché, la connexion sera activement fermée depuis le serveur pour enregistrer les ressources du système

# 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

Pour les demandes de connexion redis, il existe généralement deux scénarios :

  1. Les serveurs qui déclenchent les demandes des utilisateurs sont limités (par exemple, dans la limite de 100), vous pouvez donc définir le délai d'attente sur 0, afin que la demande de connexion Redis soit toujours valide et ne soit pas déconnectée après une seule connexion ; après le redémarrage du service ou une erreur, reconnectez-vous

  2. Un grand nombre d'utilisateurs demandent simultanément. Dans ce cas, le délai d'expiration peut être défini en quelques minutes (déterminé en fonction de l'entreprise), et le client ne ferme pas activement la connexion après la connexion. la connexion est fermée (en raison d'un délai d'attente et a été fermée par le serveur) avant de demander une connexion

  3.  ;
洪涛

Il semble avoir son propre pool de connexions

阿神

Il n'est pas recommandé de se reconnecter à chaque demande. C’est juste une perte de temps passée à créer des liens. Il est préférable d'établir un lien (createClient) dans chaque modèle et de l'y conserver. En raison des caractéristiques de traitement monothread de Redis, le pool de connexions lui-même est peu utile à Redis.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal