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

Jaki jest najlepszy sposób korzystania z Redis w środowisku Rails wielowątkowych? (Puma / Sidekiq)

Używasz oddzielnej globalnej puli połączeń dla kodu aplikacji. Umieść coś takiego w inicjatorze redis.rb:

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

Teraz w kodzie aplikacji w dowolnym miejscu możesz to zrobić:

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

Będziesz mieć do 10 kontaktów, którymi możesz się podzielić wśród pracowników pumy/sidekiq. Doprowadzi to do lepszej wydajności, ponieważ, jak słusznie zauważyłeś, nie będziesz mieć wszystkich wątków walczących o jedno połączenie Redis.

Wszystko to jest udokumentowane tutaj:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nieznane polecenie Redis ERR „FLUSHDB”

  2. Problemy z uruchomieniem instancji OAuthd

  3. Redis publikuj/subskrybuj:zobacz, jakie kanały są obecnie subskrybowane

  4. Kiedy używać magazynu klucza/wartości, takiego jak Redis, zamiast/obok bazy danych SQL?

  5. Dlaczego Redis ma funkcje Pub/Sub?