Redis
 sql >> Database >  >> NoSQL >> Redis

qual è la differenza media tra le gemme Nest e redis-namespace quando utilizziamo redis con rails/ruby

Dichiarazione di non responsabilità:sono l'autore di Nest.

Puoi ottenere lo stesso risultato con entrambe le librerie e penso che il principale elemento di differenziazione tra questi strumenti sia la loro complessità interna. Mentre Nest ti aiuta solo a rappresentare la struttura con chiavi piatte, Redis::Namespace ha una tabella di traduzione per ogni comando ed è quindi più fragile e richiede molta CPU.

Dai un'occhiata al codice sorgente di entrambi gli strumenti per capire cosa intendo:

https://github.com/soveran/nest/blob/master/lib/nest.rb

https://github.com/resque/redis-namespace/blob/master/lib/redis/namespace.rb

Detto questo, la giusta soluzione al problema che hai descritto è avere istanze Redis separate per progetti diversi. Si consideri che il keyspace è solo un aspetto di cui tenere conto (che potrebbe anche essere risolto facilmente con i diversi DB forniti da Redis). Gli altri aspetti (strategia di persistenza, limiti di connessione e memoria, sfratti di chiavi, ecc.) sono generalmente ottimizzati in base alla natura del progetto.

Un altro fatto importante è che Redis è a thread singolo e molte applicazioni lo utilizzano, sei soggetto a condividere lo stesso core per tutte le richieste. Con questo in mente, avere diverse istanze Redis ti aiuta a parallelizzare il lavoro.