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

Hvad er den bedste måde at bruge Redis i et multi-threaded Rails-miljø? (Puma / Sidekiq)

Du bruger en separat global forbindelsespulje til din applikationskode. Sæt noget som dette i din redis.rb initializer:

require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }

Nu i din ansøgningskode hvor som helst, kan du gøre dette:

REDIS.with do |conn|
  # some redis operations
end

Du har op til 10 forbindelser at dele mellem dine puma/sidekiq-medarbejdere. Dette vil føre til bedre ydeevne, da du, som du rigtigt bemærker, ikke vil have alle trådene i kamp om en enkelt Redis-forbindelse.

Alt dette er dokumenteret her:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling




  1. Redis Connection via socket på Node.js

  2. redis forbindelsestimeout til fjernserver i en docker

  3. konfigurer redis auth på sidekiq

  4. MongoDB $toLower