You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sidekiq-unique-jobs遇Unknown driver :hiredis错误求助

解决Sidekiq启动时「Unknown driver :hiredis, expected one of: [:ruby]」错误

问题原因

Sidekiq 7.0+ 重构了Redis连接实现,不再支持手动指定:driver => :hiredis,且弃用了旧版hiredis gem,改用hiredis-client作为官方推荐的高性能驱动。你的配置中手动指定了:hiredis驱动,而Sidekiq 7默认仅识别:ruby驱动,因此触发错误。

解决方案

1. 调整依赖Gem

修改Gemfile,移除旧版hiredis,保留hiredis-client:

# 移除该行
# gem 'hiredis', '0.6.3'
gem 'hiredis-client', '0.11.2'
gem 'sidekiq', '7.0.2'
gem 'sidekiq-unique-jobs', '7.1.28'

执行bundle install更新依赖。

2. 修改Sidekiq配置

删除配置中手动指定的:driver参数,Sidekiq会自动检测并使用hiredis-client(如果已安装)。示例配置(config/initializers/sidekiq.rb):

Sidekiq.configure_server do |config|
  config.redis = { url: 'redis://localhost:6379/0' }
  # 无需指定driver,Sidekiq自动处理
end

Sidekiq.configure_client do |config|
  config.redis = { url: 'redis://localhost:6379/0' }
end

3. 适配sidekiq-unique-jobs配置

确保sidekiq-unique-jobs使用Sidekiq的默认Redis连接,不要单独指定驱动:

SidekiqUniqueJobs.configure do |config|
  # 仅配置业务相关参数,如锁超时
  config.lock_timeout = 30.minutes
end

验证

重启Sidekiq服务,错误应消失。若仍有问题,可执行bundle exec sidekiq --verbose查看详细日志,确认Redis连接是否正常加载hiredis-client。

内容的提问来源于stack exchange,提问作者A. Vreeswijk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:20:34