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

nen*_*enj 6 webserver database-connection redis node.js

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

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...
      });
   });
Run Code Online (Sandbox Code Playgroud)

或者我应该在每次完成连接请求时进行连接,如下所示:

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...
      });
   });
Run Code Online (Sandbox Code Playgroud)

?

现在我说的是连接数量有限,时间稀少,不用担心效率优化。

Dip*_*dya 1

我有时也有同样的困惑,但找不到任何好的答案。最后我选择只连接一次以减少代码行数。Redis 主要遵循单线程设计,因此连接池也没有太大帮助。