sql >> Database >  >> NoSQL >> Redis

Moet ik de Redis-verbinding tussen bestanden/modules delen?

Als ik voor een vraag als deze sta, denk ik over het algemeen aan drie basisvragen.

  1. Wat is beter leesbaar?
  2. Wat maakt een beter hergebruik van code mogelijk?
  3. Wat is efficiënter?

Niet per se in deze volgorde omdat het van het scenario afhangt, maar ik geloof dat in dit geval alle drie deze vragen in het voordeel zijn van optie B. Als u ooit opties voor createClient moest wijzigen, zou u ze in elk bestand moeten bewerken die het gebruikt. Wat in optie A elk bestand is dat redis gebruikt, en optie B is gewoon redis.js. Ook als er een nieuwer of ander product uitkomt en u redis wilt vervangen, is het mogelijk om van redis.js een wrapper te maken voor een ander pakket of zelfs een nieuwere redis-client, waardoor de conversietijd aanzienlijk wordt verkort.

Globalen zijn over het algemeen een slechte zaak, maar in dit voorbeeld zou redis.js geen veranderlijke status moeten opslaan, dus het is geen probleem om in deze context een global/singleton te hebben.



  1. Redis-beheerpaneel

  2. Redis Sentinel

  3. Hoe de featureCompatibilityVersion in MongoDB in te stellen

  4. Python &Redis:best practices voor Manager/Worker-applicaties