您应该让 Redis 保持打开状态,还是在每次在节点中使用后打开并退出它?

Posted

技术标签:

【中文标题】您应该让 Redis 保持打开状态,还是在每次在节点中使用后打开并退出它?【英文标题】:Are you supposed to leave Redis open, or open and quit it after each use in node? 【发布时间】:2012-01-19 19:03:11 【问题描述】:

我有一个使用名为“server.js”的 redis 的 socket.io 服务器来启动节点服务器。目前是这样的:

var client = redis.createClient()
var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) 
  client.set(); // do something with redis
);

然后我启动我的服务器,它就一直活着。这是错的吗?应该是这样吗?

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) 
  var client = redis.createClient()
  client.set(); // do something with redis
  client.quit();
);

我应该继续打开和关闭redis,还是我可以只打开一次并保持打开状态?以上哪个 sn-ps 是启动服务器的正确方法?

【问题讨论】:

见:***.com/questions/5739357/… 【参考方案1】:

第一个是首选语法,因为您不希望每次客户端连接到 Socket.IO 时都建立新的 redis 连接。如果您连接了 1000 个用户,您希望有 1000 个到 Redis 的连接还是只有一个(好吧,也许更多,因为您会产生更多的服务器)?

正如@racar 建议的那样,您也应该看看这个问题:

How to reuse redis connection in socket.io?

【讨论】:

以上是关于您应该让 Redis 保持打开状态,还是在每次在节点中使用后打开并退出它?的主要内容,如果未能解决你的问题,请参考以下文章

数据库连接应该始终保持打开状态还是仅在需要时才打开?

数据库连接应该始终保持打开状态还是仅在需要时才打开?

插座应该保持打开还是拆除[重复]

让用户保持登录状态

一旦程序完成并在 1 次击键后关闭,是不是有办法让控制台窗口保持打开状态?

在扩展坞保持活动状态时隐藏 NSMenu