使用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
相关产品推荐
相关产品推荐

