Redis®*: 將 Redis 與 Sidekiq 整合

本文件是與 Ruby 搭配使用指南的一部分。請在此處查看完整指南:如何將 Redis 與 Ruby 連接

👋 歡迎來到 Stackhero 文件中心!

Stackhero 提供即時可用的 Redis cloud 解決方案,帶來多項優勢,包括:

  • 內建 Redis Commander 網頁管理介面
  • 無限制的訊息大小與傳輸量。
  • 一鍵輕鬆完成更新
  • 透過專屬私有基礎架構,實現最佳效能與強大安全性

節省時間簡化您的工作流程:只需 5 分鐘即可體驗 Stackhero 的 Redis cloud hosting 解決方案!

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 client 設定:

# 檔案 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 伺服器暫時無法連線時,client 會在 2 分鐘內持續重試,之後才回報錯誤。 這樣可以讓 Redis 伺服器有時間重新啟動,例如進行維護時。 您可依據 Sidekiq 的實際使用情境,調整這個參數以符合您的需求。

如需更多有關 Sidekiq 與 Redis 的資訊,請參考 官方文件