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

Devo condividere la connessione Redis tra file/moduli?

Quando affronto una domanda come questa, generalmente penso a tre domande fondamentali.

  1. Quale è più leggibile?
  2. Che consente un migliore riutilizzo del codice?
  3. Quale è più efficiente?

Non necessariamente in questo ordine in quanto dipende dallo scenario, ma credo che in questo caso tutte e tre queste domande siano a favore dell'opzione B. Se mai avessi bisogno di modificare le opzioni per createClient, dovresti quindi modificarle in ogni file che lo usa. Quale nell'opzione A è ogni file che utilizza redis e l'opzione B è solo redis.js. Inoltre, se esce un prodotto più nuovo o diverso e desideri sostituire redis, sarebbe possibile fare di redis.js un wrapper per un pacchetto diverso o anche un client redis più recente, riducendo notevolmente i tempi di conversione.

I globali sono generalmente una cosa negativa, ma in questo esempio redis.js non dovrebbe memorizzare lo stato mutabile, quindi non c'è problema ad avere un globale/singleton in questo contesto.