sql >> Databasteknik >  >> NoSQL >> Redis

Ska jag skapa en ny Redis-klient för varje anslutning?

Uh, det verkar som att de skapar en redis-anslutning för varje klient. Detta rekommenderas definitivt inte.

Redis är en databas. Det är som MySQL. Du kan komma åt det via en klient, men det är ett program som körs på din server. Data hanteras av den, så du behöver inte oroa dig för var den är. Om du oroar dig kan du titta på redis-konfigurationen. Mer information här:http://redis.io (dokumentet är riktigt bra).

För att "fixa" koden och bara använda en klient, måste du använda den så här:

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


  1. MongoDB $isoWeek

  2. Guide till Upsert i MongoDB

  3. Hur man returnerar endast värdet av ett fält i mongodb

  4. MongoDB-aggregationsjämförelse:group(), $group och MapReduce