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

qual é a diferença média entre Nest e gems de namespace redis quando usamos redis com rails/ruby


Isenção de responsabilidade:eu sou o autor de Nest.

Você pode fazer o mesmo com as duas bibliotecas, e acho que o principal diferencial entre essas ferramentas é sua complexidade interna. Enquanto o Nest apenas ajuda você a representar a estrutura com teclas planas, o Redis::Namespace possui uma tabela de tradução para cada comando e, portanto, é mais frágil e consome mais CPU.

Dê uma olhada no código-fonte de ambas as ferramentas para ver o que quero dizer:

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

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

Dito isso, a solução certa para o problema que você descreveu é ter instâncias do Redis separadas para projetos diferentes. Considere que o keyspace é apenas um aspecto a ser levado em consideração (que também pode ser resolvido facilmente com os diferentes bancos de dados fornecidos pelo Redis). Os outros aspectos (estratégia de persistência, limites de conexão e memória, despejos de chaves, etc.) geralmente são ajustados dependendo da natureza do projeto.

Outro fato importante é que o Redis é single threaded, e muitos aplicativos que o utilizam estão sujeitos a compartilhar o mesmo núcleo para todas as requisições. Com isso em mente, ter diferentes instâncias do Redis ajuda a paralelizar o trabalho.