在Sidekiq中使用多个Redis服务器

时间:2014-03-25 06:04:24

标签: ruby-on-rails redis sidekiq

我正在使用Sidekiq将后台作业处理到我们的一个中 Rails项目。我们希望使用位于不同位置的其他Redis服务器与其他后台处理作业分离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服务器的连接?

1 个答案:

答案 0 :(得分:4)

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

来自:Sidekiq 3 Release Note

  

客户端分片

     

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

     

API几乎完全向后兼容:唯一的破坏   改变是在客户端中间件。有关详情,请参阅upgrade notes   细节。

===

另请查看 - Work with two separate redis instances with sidekiq?

的答案