Node.js服务器:连接到REDIS数据库一次?或根据每个请求



我正在构建一个node.js服务器,并在redis数据库中使用简单的身份验证获取UID和键。我应该在运行服务器时一劳永逸地连接到Redis DB,例如:

var http = require('http'),
    express = require('express');
var app = express();
var redis = require('redis'),
    redisclient = redis.createClient();
//... redis ready, error, end callback handlers here ...
app.get( '/connect/:uid/:key', function(req,res,next) {
   redisclient.hget(req.params.uid,req.params.key, function(err,rep) {
      // ... commands here...
      });
   });

或每次完成连接请求时都应该连接,例如:

var http = require('http'),
    express = require('express');
var app = express();
var redis = require('redis');
app.get( '/connect/:uid/:key', function(req,res,next) {
   var redisclient = redis.createClient();
   //... redis callback handlers here...
   redisclient.hget(req.params.uid,req.params.key, function(err,rep) {
      // ... commands here...
      });
   });

目前,我谈论的是有限数量的连接,时间稀疏,并且不用担心效率优化。

我在某个时候有相同的混乱,但找不到任何好的答案。最后,我只选择一次连接以减少代码行。Redis主要遵循单线设计,因此连接池也不会有太大帮助。

您不应该两者都做...理想情况下应该有一个连接池..可以说20个连接池应该重复使用。

如果您按照每个请求进行连接,那么它的性能不佳,并且即使您关闭了redis的许多TCP连接,也将处于时间等状态。

如果您只有一个连接,那么它就像您在单车道上驾驶汽车,网络将得到结合

我不太确定,但我认为Hiredis(节点模块)具有连接池...

最新更新