sql >> Base de Datos >  >> NoSQL >> Redis

¿Debo crear un nuevo cliente Redis para cada conexión?

Uh, parece que están creando una conexión Redis para cada cliente. Esto definitivamente no es recomendable.

Redis es una base de datos. Es como MySQL. Puede acceder a él a través de un cliente, pero es un programa que se ejecuta en su servidor. Los datos son manejados por él, por lo que no tiene que preocuparse por dónde está. Si te preocupas, puedes mirar la configuración de redis. Más información aquí:http://redis.io (el documento es realmente bueno).

Para "arreglar" el código y usar solo un cliente, tendría que usarlo así:

/**
 * Move this at the top, this way it's not run once per client,
 * it is run once the node program is launched.
 */
var r = redis.createClient();

var addSnippet = function( req, res ) {
  getPostParams( req, function( obj ) {    
      r.stream.on( 'connect', function() {
        r.incr( 'nextid' , function( err, id ) {
          r.set( 'snippet:'+id, JSON.stringify( obj ), function() {
            var msg = 'The snippet has been saved at <a href="/'+id+'">'+req.headers.host+'/'+id+'</a>';
            res.respond( msg );
          } );
        } );
      } );
    });
};