Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Devo criar um novo cliente Redis para cada conexão?


Uh, parece que eles estão criando uma conexão redis para cada cliente. Isso definitivamente não é recomendado.

Redis é um banco de dados. É como o MySQL. Você pode acessá-lo através de um cliente, mas é um programa rodando em seu servidor. Os dados são tratados por ele, então você não precisa se preocupar com onde ele está. Se você se preocupar, você pode ver a configuração do redis. Mais informações aqui:http://redis.io (o documento é muito bom).

Para "consertar" o código e usar apenas um cliente, você teria que usá-lo assim:
/**
 * 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 );
          } );
        } );
      } );
    });
};