Valkey: 配置 Valkey 与 Sidekiq 集成

本文档属于与 Ruby 配合使用指南的一部分。您可以在此处查看完整指南:如何将 Valkey 与 Ruby 连接

👋 欢迎查阅 Stackhero 文档!

Stackhero 提供即开即用的 Valkey cloud 解决方案,带来多项优势,包括:

  • 集成 Redis Commander Web 管理界面
  • 无限制的消息大小与传输。
  • 一键完成升级,操作便捷。
  • 依托专属私有基础设施,实现卓越性能与强大安全性

节省时间简化您的工作流程:只需 5 分钟,即可体验 Stackhero 的 Valkey cloud hosting 解决方案!

Sidekiq 会自动使用由环境变量 REDIS_URL 指定的 Valkey 服务器。

您可以如下设置环境变量 REDIS_URL,只需将 <password><XXXXXX> 替换为您的信息:

REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

默认情况下,Sidekiq 的配置在网络波动时没有任何容错机制。为提升稳定性,建议在 config/initializers/sidekiq.rb 中调整 Sidekiq 客户端配置:

# 文件 config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # 设置超时时间为 5 秒
    pool_timeout: 5, # 设置超时时间为 5 秒
    reconnect_attempts: Array.new(240, 0.5) # 尝试重连 240 次,每 0.5 秒一次(共 120 秒/2 分钟),之后才报错
  }
end

该配置确保当 Valkey 服务器不可用时,客户端会在 2 分钟内持续重试,之后才会报错。这为 Valkey 服务器重启等操作预留了缓冲时间。您可根据实际 Sidekiq 使用场景,调整该参数以满足具体需求。

如需了解更多关于 Sidekiq 与 Valkey 的集成信息,请参考 官方文档