Rails 应用程序中的默认 Sidekiq Redis 配置

Default Sidekiq Redis configuration in Rails app

我试图理解 Passenger+Rails 应用程序中的 Redis 和 Sidekiq 配置,但 运行 缺乏理解。我独立于我的 rails 应用程序启动了 redis 服务器,而 Sidekiq 在我的 Rails 应用程序中是一个 gem。我同样启动它:(我不需要 sidekiq.yml 文件)

bundle exec sidekiq

以下是我的 sidekiq.rb 初始值设定项:

require 'sidekiq'
require 'sidekiq-status'

Sidekiq.configure_client do |config|
  config.client_middleware do |chain|
    chain.add Sidekiq::Status::ClientMiddleware
  end
end

Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.add Sidekiq::Status::ServerMiddleware, expiration: 30.minutes
  end
  config.client_middleware do |chain|
    chain.add Sidekiq::Status::ClientMiddleware
  end
end

我浏览了一些图书馆 类,但无济于事。

我想了解 Sidekiq 在哪里配置它的 Redis 服务器详细信息。它默认为 localhost:6379,但我不太确定如何。
另外,如果我以后想使用 Memcached,我该如何更改?

来自 sidekiq 文档:

By default, Sidekiq tries to connect to Redis at localhost:6379

https://github.com/mperham/sidekiq/wiki/Using-Redis

您可以在初始化程序中更改端口:

 Sidekiq.configure_server do |config|
      config.redis = { url: 'redis://redis.example.com:7372/12' }
 end

从外观上看,sidekiq 仅适用于 redis

Sidekiq uses Redis to store all of its job and operational data.

这是我根据其他答案所做的:

# frozen_string_literal: true
Sidekiq.configure_server do |config|
  config.redis = {
    url: ENV.fetch("SIDEKIQ_REDIS_URL", "redis://localhost:6379/1")
  }
end