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

Devo compartilhar a conexão Redis entre arquivos/módulos?


Quando me deparo com uma pergunta como essa, geralmente penso em três perguntas básicas.
  1. Qual ​​é mais legível?
  2. Qual ​​permite uma melhor reutilização de código?
  3. Qual ​​é mais eficiente?

Não necessariamente nesta ordem, pois depende do cenário, mas acredito que, neste caso, todas essas três perguntas são a favor da opção B. Se você precisar modificar as opções para createClient, precisará editá-las em todos os arquivos que o usa. Que na opção A é todo arquivo que usa redis, e a opção B é apenas redis.js. Além disso, se um produto mais novo ou diferente for lançado e você quiser substituir o redis, seria viável fazer do redis.js um wrapper para um pacote diferente ou até mesmo um cliente redis mais novo, reduzindo substancialmente o tempo de conversão.

Globals são geralmente uma coisa ruim, mas neste exemplo redis.js não deve armazenar estado mutável, então não há problema em ter um global/singleton neste contexto.