Valkey: 與 Ruby 搭配使用
如何將 Valkey 與 Ruby 連接
👋 歡迎來到 Stackhero 文件中心!
Stackhero 提供即時可用的 Valkey cloud 解決方案,帶來多項優勢,包括:
- 內建
Redis Commander網頁管理介面。- 無限制的訊息大小與傳輸量。
- 一鍵輕鬆完成更新。
- 透過專屬私有基礎架構,實現最佳效能與強大安全性。
節省時間、簡化您的工作流程:只需 5 分鐘即可體驗 Stackhero 的 Valkey cloud hosting 解決方案!
Valkey 是一款開源、記憶體內資料庫,專為卓越效能與彈性而設計。Valkey 是從 Redis 分支出來的專案,因為 Redis 採用了更嚴格的授權條款,而 Valkey 則提供了完全開源的替代方案。Valkey 與 Redis 的函式庫高度相容,非常適合作為原本依賴 Redis 專案的直接替換方案。
Valkey 通常被歸類為 NoSQL 資料庫,支援多種資料結構,例如字串(strings)、雜湊(hashes)、串列(lists)、集合(sets)以及有序集合(sorted sets)等。由於其高速運算能力與處理大量資料的能力,Valkey 已成為快取(caching)、即時分析(real-time analytics)、訊息傳遞(messaging)等多種應用場景的熱門選擇。
Valkey 能夠輕鬆整合至 Ruby 與 Ruby on Rails,進一步提升效能、擴展性與彈性。Ruby 開發者可以利用 Valkey 實作快取、Session 管理、即時資料處理、背景工作(background job)等功能。
以下是 Valkey 與 Ruby 及 Ruby on Rails 常見的整合方式:
-
快取(Caching):Valkey 可作為 Rails 應用程式的快取層,加速回應速度並減輕資料庫負載。
-
背景工作處理(Background job processing):Valkey 可作為 Sidekiq、Resque 等熱門背景工作處理函式庫的後端,提升 Rails 應用程式中背景任務的效能與可靠性。
-
即時功能(Real-time features):Valkey 的 Pub/Sub 功能讓 Rails 應用程式能夠實現即時通知、聊天室系統、即時分析等功能,促進應用元件間快速且高效的訊息傳遞。
Stackhero 提供現成的 Ruby cloud 解決方案,帶來多項優勢,包括:
- 只需一個
git push,即可在數秒內部署您的應用程式。- 可使用您自己的網域名稱,並享有自動設定的HTTPS 憑證,提升安全性。
- 享有自動備份、一鍵更新,以及簡單、透明且可預測的收費,讓您更安心。
- 憑藉專屬私有基礎架構,獲得最佳效能與強大安全性。
節省時間,簡化您的工作:只需 5 分鐘,即可體驗 Stackhero 的 Ruby cloud hosting 解決方案!
將 Valkey 設定為 Ruby on Rails 的快取系統
若要將 Valkey 設定為 Ruby on Rails 的快取系統,請依照下列步驟操作:
- 安裝
redisgem:
bundle add redis
- 編輯
config/environments/production.rb檔案,加入以下設定:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
- 設定
VALKEY_URL環境變數。請使用下列格式的 URL,並將<yourPassword>與<XXXXXX>替換為您的認證資訊:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
如需更多關於將 Valkey 設定為 Ruby on Rails 快取系統的細節,建議參考 官方 Rails 文件。
將 Valkey 與 Sidekiq 整合
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 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) # 每 0.5 秒重試一次,共重試 240 次(總計 120 秒/2 分鐘)才會觸發錯誤
}
end
此設定可確保當 Valkey 伺服器暫時無法連線時,client 會在 2 分鐘內持續重試,之後才回報錯誤。這樣可讓 Valkey 伺服器有時間重新啟動。例如,根據您 Sidekiq 的實際使用情境,您可以調整這個設定以符合您的需求。
如需更多有關 Sidekiq 與 Valkey 的資訊,請參考 官方文件。
將 Valkey 與 Resque 整合
若要將 Valkey 與 Resque 搭配使用,請設定 REDIS_URL 環境變數如下,並將 <yourPassword> 與 <XXXXXX> 替換為您的認證資訊:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Resque 會自動使用 REDIS_URL 環境變數所指定的 Valkey 伺服器。
如需更多有關 Resque 與 Valkey 搭配使用的資訊,請參考 Resque 文件。