Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Czy powinienem udostępniać połączenie Redis między plikami/modułami?

Kiedy spotykam się z takim pytaniem, zazwyczaj myślę o trzech podstawowych pytaniach.

  1. Co jest bardziej czytelne?
  2. Co pozwala na lepsze ponowne wykorzystanie kodu?
  3. Co jest bardziej wydajne?

Niekoniecznie w tej kolejności, ponieważ zależy to od scenariusza, ale uważam, że w tym przypadku wszystkie trzy z tych pytań są na korzyść opcji B. Jeśli kiedykolwiek musiałeś zmodyfikować opcje dla funkcji createClient, będziesz musiał je edytować w każdym pliku który z niego korzysta. Który w opcji A to każdy plik, który używa redis, a opcja B to po prostu redis.js. Również, jeśli pojawi się nowszy lub inny produkt i chcesz zastąpić redis. Byłoby wykonalne, aby redis.js był opakowaniem dla innego pakietu lub nawet nowszego klienta redis, znacznie skracając czas konwersji.

Globalne są generalnie złe, ale w tym przykładzie redis.js nie powinien przechowywać mutable state, więc nie ma problemu z globalnym/singletonem w tym kontekście.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak stworzyć własną bazę danych w redis?

  2. Strażnicy Redis z TLS

  3. Serializacja Redis poprzedzona dodatkowym ciągiem

  4. Ustalenie, dlaczego Redis otrzymuje SIGTERM co minutę lub dwie

  5. Opróżnić/usunąć zestaw w Redis?