Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Czy powinienem utworzyć nowego klienta Redis dla każdego połączenia?

Wygląda na to, że tworzą połączenie redis dla każdego klienta. To zdecydowanie nie jest zalecane.

Redis to baza danych. To jak MySQL. Możesz uzyskać do niego dostęp przez klienta, ale jest to program działający na twoim serwerze. Dane są przez nią obsługiwane, więc nie musisz się martwić, gdzie się znajdują. Jeśli się martwisz, możesz spojrzeć na konfigurację redis. Więcej informacji tutaj:http://redis.io (dokument jest naprawdę dobry).

Aby "naprawić" kod i używać tylko jednego klienta, musisz go użyć w następujący sposób:

/**
 * 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis Pub-Sub lub emisja Socket.IO

  2. Tymczasowa awaria ponownego rozpoznawania nazw

  3. GenericJackson2JsonRedisSerializer Ignoruj ​​klasę i atrybut

  4. Limit szybkości interfejsu API (wiosna MVC)

  5. Jak przechowywać tablicę obiektów w Redis?