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

Hvordan konfigureres Redis-forbindelser med Rails 4, Puma og Sidekiq?

Redis er enkelttrådet, men skrevet i ren C, bruger en hændelsesløkke indeni og håndterer forbindelser asynkront, så antallet af forbindelser påvirker det ikke meget, forudsat at det er det samme antal anmodninger. Den er i stand til at håndtere anmodninger hurtigere, end din applikation kan generere dem på grund af netværksforsinkelse, ruby ​​er langsommere end kompileret og optimeret C osv., så du behøver ikke bekymre dig om, at den er enkelttrådet.

Et stigende antal forbindelser er fordelagtigt for samtidige anmodninger fra forskellige tråde, fordi der ikke er behov for at vente på, at svaret leveres over netværket for at låse forbindelsen op, plus at Ruby kan udføre parallelle IO'er.

Du kan også se, om poolen er for lille, når forbindelsesudtjekningstiderne bliver værre, end du forventer/tolererer, og den tilsvarende tråd/arbejder går i tomgang, mens han venter på den, så benchmark din kode og se godt på dine faktiske brugs- og adfærdsmønstre.

På den anden side vil jeg fraråde at bruge hele grænsen for antal forbindelser, der er tidspunkter, hvor du måske har brug for disse ekstra forbindelser. For eksempel:

  • for yndefuld/"nul nedetid" dyno-genstarter ("preboot") skal du have dobbelt så mange forbindelser, da gamle processer stadig kører i nogen tid
  • hold mindst én ledig forbindelse til nøddebug, da du måske vil være i stand til at oprette forbindelse fra konsollen/direkte og se, hvilke data der er inde, når der kommer en uventet højbelastning



  1. MongoDB ikke lig med

  2. MongoDB Document Re-shaping

  3. MongoDB $lt Aggregation Pipeline Operator

  4. Sagen om MongoDB hashed-indekser