2011-12-13 9 views
8

Tengo un servidor socket.io que usa redis llamado "server.js" que activa un servidor de nodos. Actualmente es algo como esto:¿Se supone que debes dejar Redis abierto, o abrirlo y cerrarlo después de cada uso en el nodo?

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

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

Luego enciendo mi servidor y simplemente permanece vivo. ¿Esto esta mal? ¿Debería ser así?

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(); 
}); 

¿Se supone que debo seguir abriendo y cerrando redis, o puedo abrirlo una vez y dejarlo abierto? ¿Cuál de los fragmentos anteriores es la forma correcta de iniciar un servidor?

+0

véase: http://stackoverflow.com/questions/5739357/how-to-reuse-redis-connection -en-socket-io – malletjo

Respuesta

2

La primera es la sintaxis preffered porque no desea hacer una nueva conexión de redis cada vez que un cliente se conecta a Socket.IO. Si tiene 1000 usuarios conectados, ¿le gustaría tener 1000 conexiones a Redis o solo una (vale quizás más ya que generaría más servidores)?

Como @racar sugirió, debería echar un vistazo también a esta pregunta:

How to reuse redis connection in socket.io?

Cuestiones relacionadas