Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Cách tốt nhất để sử dụng Redis trong môi trường Rails đa luồng là gì? (Puma / Sidekiq)

Bạn sử dụng một nhóm kết nối toàn cầu riêng cho mã ứng dụng của mình. Đặt một cái gì đó như thế này vào trình khởi tạo redis.rb của bạn:

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

Bây giờ trong mã ứng dụng của bạn ở bất kỳ đâu, bạn có thể thực hiện việc này:

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

Bạn sẽ có tối đa 10 kết nối để chia sẻ giữa các nhân viên puma / sidekiq của mình. Điều này sẽ dẫn đến hiệu suất tốt hơn vì, như bạn lưu ý một cách chính xác, bạn sẽ không có tất cả các chuỗi đấu tranh qua một kết nối Redis duy nhất.

Tất cả những điều này được ghi lại tại đây: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. Cấu trúc dữ liệu cơ bản được sử dụng cho Redis là gì?

  2. Lỗi kênh Django - Không thể nhập BACKEND 'asgi_redis.RedisChannelLayer'

  3. Làm thế nào để gọi hàm sau khi hoàn thành các hàm không đồng bộ bên trong vòng lặp?

  4. Redis kết nối ECONNREFUSED trong NodeJS trong cụm Kubernetes

  5. Twisted:tại sao việc chuyển một lệnh gọi lại bị hoãn lại đến một chuỗi bị hoãn lại khiến cho chuỗi đó đột ngột bị chặn?