sql >> Databasteknik >  >> NoSQL >> Redis

Hur konfigurerar man Redis-anslutningar med Rails 4, Puma och Sidekiq?

Redis är entrådig, men skriven i ren C, använder en händelseslinga inuti och hanterar anslutningar asynkront, så antalet anslutningar påverkar det inte mycket förutsatt att samma antal förfrågningar är. Den kan hantera förfrågningar snabbare än din applikation kan generera dem på grund av nätverksfördröjning, ruby ​​är långsammare än kompilerad och optimerad C, etc, så du behöver inte oroa dig för att den är entrådig.

Att öka antalet anslutningar är fördelaktigt för samtidiga förfrågningar från olika trådar eftersom det inte finns något behov av att vänta på att svaret ska levereras över nätverket för att låsa upp anslutningen, plus att ruby ​​kan göra parallella IO:er.

Du kan också se om poolen är för liten när utcheckningstiderna för anslutningen blir sämre än du förväntar dig/tolererar och motsvarande tråd/arbetare går på tomgång medan du väntar på den, så jämför din kod och se dina faktiska användnings- och beteendemönster.

Å andra sidan skulle jag avråda från att använda hela anslutningsgränsen, det finns tillfällen då du kan behöva dessa extra anslutningar. Till exempel:

  • för graciösa/"noll driftstopp" dyno-omstarter ("förstart") behöver du dubbelt så många anslutningar, eftersom gamla processer fortfarande körs ett tag
  • behåll minst en ledig anslutning för nödfelsökning eftersom du kanske vill kunna ansluta från konsolen/direkt och se vilken data som finns inuti när någon oväntad högbelastning kommer



  1. Kan du ange en nyckel för $addToSet i Mongo?

  2. Hur kan jag byta namn på ett fält för alla dokument i MongoDB?

  3. En översikt över databasdriftsrapportering i ClusterControl

  4. Hur kan jag skapa ett ObjectId med mongoose?