Sid Sid - 1 year ago 107
Ruby Question

Default Sidekiq Redis configuration in Rails app

I'm trying to understand the Redis & Sidekiq configuration in a Passenger+Rails app and have run into some lack of understanding. I start the redis server independently of my rails app, while Sidekiq is a gem in my Rails app. I start it likewise: (no sidekiq.yml file needed for me)


bundle exec sidekiq


Following is my sidekiq.rb initializer:

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


I went through some library classes, but to no avail.

I want to understand where does Sidekiq configure it's Redis server details. It defaults to
localhost:6379
, but I am not quite sure how.

Also, if I wish to use Memcached in future, how can I change that?

Answer Source

From sidekiq docs:

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

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

You can change the port in the initializer:

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

From the looks of it sidekiq works only with redis

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

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download