Redis
 sql >> Base de données >  >> NoSQL >> Redis

Dois-je créer un nouveau client Redis pour chaque connexion ?

Euh, on dirait qu'ils créent une connexion redis pour chaque client. Ce n'est certainement pas recommandé.

Redis est une base de données. C'est comme MySQL. Vous pouvez y accéder via un client, mais c'est un programme exécuté sur votre serveur. Les données sont gérées par lui, vous n'avez donc pas à vous soucier de leur emplacement. Si vous vous inquiétez, vous pouvez consulter la configuration de Redis. Plus d'informations ici :http://redis.io (la doc est vraiment bien).

Pour "corriger" le code et n'utiliser qu'un seul client, vous devez l'utiliser comme ceci :

/**
 * 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 );
          } );
        } );
      } );
    });
};