在Sidekiq中使用多个Redis服务器

我正在使用Sidekiq将后台作业处理到我们的一个Rails项目中。 我们希望使用位于不同位置的不同Redis服务器来将ReportDB与其他后台处理作业ReportDB

根据Sidekiq配置维基我们可以配置像

配置/初始化/ sidekiq.rb

 Sidekiq.configure_server do |config| config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' } end Sidekiq.configure_client do |config| config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' } end 

但是如何初始化与多个redis服务器的连接?

Sidekiq 2不支持多个Redis服务器,升级到今天发布的sidekiq 3并添加了您需要的新客户端分片function。

来自: Sidekiq 3发行说明

客户端分片

Sidekiq 2.x具有可扩展性限制:一台Redis服务器。 实际上,在良好的硬件上限制大于每秒5000个作业,所以对大多数人来说这并不是什么大问题,但是一些更激烈的Sidekiq用户正在达到这个限制。 更新的(Sidekiq 3)Sidekiq :: Client API允许您指定要使用的Redis连接池,而不是先前假定Sidekiq.redis全局池,允许您将不同类型的作业定位到不同的Redis服务器。 现在你可以将Sidekiq扩展到无限远甚至更远!

API几乎完全向后兼容: 唯一的突破性变化是客户端中间件 。 有关详细信息,请参阅升级说明 。

===

另外看看答案 – 使用sidekiq处理两个单独的redis实例?