2011-12-13 3 views
8

У меня есть сервер socket.io, используя redis, называемый «server.js», который запускает сервер узлов. В настоящее время это примерно так:Вы должны оставить Redis открытым или открыть и выйти из него после каждого использования в узле?

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, или я могу просто открыть его один раз и оставить его открытым? Какой из приведенных выше фрагментов является правильным способом запуска сервера?

+0

см: http://stackoverflow.com/questions/5739357/how-to-reuse-redis-connection -в-сокет-IO – malletjo

ответ

2

Первый - предпочтительный синтаксис, потому что вы не хотите создавать новое redis-соединение каждый раз, когда клиенты подключаются к Socket.IO. Если у вас 1000 пользователей подключено, вы хотите иметь 1000 подключений к Redis или только один (хорошо, может быть, больше, так как вы создадите больше серверов)?

Как @racar предложил, вы должны взглянуть также на этот вопрос:

How to reuse redis connection in socket.io?