Redis®*: 配置 Redis 与 Sidekiq

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

👋 欢迎来到 Stackhero 文档!

Stackhero 提供现成的 Redis 云 解决方案,具有众多优势,包括:

  • 包含 Redis Commander 网页界面
  • 无限消息大小和传输。
  • 只需点击即可轻松更新
  • 专用私有 VM提供的最佳性能和强大安全性

节省时间简化生活:只需 5 分钟即可试用 Stackhero 的 Redis 云托管 解决方案!

Sidekiq 将自动使用环境变量 REDIS_URL 中定义的 Redis 服务器。

您可以这样设置环境变量 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

此配置确保如果您的 Redis 服务器不可用,客户端将在 2 分钟内尝试重试,然后报告错误。 例如,这给 Redis 服务器重启的时间。 根据您的 Sidekiq 使用情况,您可以调整此设置以更好地满足您的特定需求。

有关 Sidekiq 和 Redis 的更多信息,您可以查阅 官方文档