Redis®*: 使用 Ruby

如何將 Redis 與 Ruby 連接

👋 歡迎來到 Stackhero 文件!

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

  • 包含 Redis Commander 網頁介面
  • 無限制的訊息大小和傳輸。
  • 只需點擊即可輕鬆完成 更新
  • 專用私有 VM 提供的最佳 效能和強大 安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Redis cloud hosting 解決方案!

Redis,全名為 Remote Dictionary Server,是一個開源的內存數據庫,提供卓越的性能和靈活性。

通常被稱為 NoSQL 數據庫,Redis 支援多種數據結構,如字符串、哈希、列表、集合和排序集合等。憑藉其高速操作和處理大量數據的能力,Redis 已成為緩存、實時分析、消息傳遞及其他多種應用的熱門選擇。

Redis 可以無縫地與 Ruby 和 Ruby on Rails 集成,以提升性能、可擴展性和靈活性。通過利用 Redis,Ruby 開發者可以實現多種功能,如緩存、會話管理、實時數據處理和後台任務處理等。

以下是 Redis 與 Ruby 和 Ruby on Rails 常見的使用方式:

  1. 緩存:Redis 可以作為 Rails 應用中的緩存存儲,以加快響應時間並減少數據庫負載。
  2. 後台任務處理:Redis 作為流行的後台任務處理庫如 Sidekiq 和 Resque 的後端,提升 Rails 應用中後台任務的性能和可靠性。
  3. 實時功能:Redis 的 Pub/Sub 功能允許 Rails 應用實現實時功能,如通知、聊天系統和實時分析,通過促進不同應用組件之間快速高效的消息傳遞。

Stackhero 提供一個即用的 Ruby cloud 解決方案,帶來多種好處,包括:

  • 使用簡單的 git push 在幾秒內 部署您的應用。
  • 使用您自己的域名,並享受 自動配置 HTTPS 證書以增強安全性。
  • 享受 自動備份一鍵更新,以及簡單、透明和 可預測的定價,讓您安心無憂。
  • 獲得最佳的 性能 和強大的 安全性,因為有 專用的私人 VM

節省時間簡化生活:只需 5 分鐘 即可嘗試 Stackhero 的 Ruby cloud hosting 解決方案。

首先,您可能需要安裝 "redis" gem:

bundle add redis

接下來,您可以編輯 config/environments/production.rb 文件並添加此行:

config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }

最後,定義 REDIS_URL 環境變量。您可以使用此 URL,並只需替換 <yourPassword><XXXXXX> 為您的信息:

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

有關將 Redis 配置為 Ruby on Rails 緩存系統的更多信息,您可以查閱 官方 Rails 文檔

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 的更多信息,您可以查閱 官方文檔

Resque 將自動使用在環境變量 REDIS_URL 中定義的 Redis 服務器。

您可以這樣設置環境變量 REDIS_URL,替換 <yourPassword><XXXXXX> 為您的信息:

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

有關 Resque 和 Redis 的更多信息,您可以查閱 官方文檔