Redis®*: 入門指南

快速指南:如何開始使用 Redis

👋 歡迎來到 Stackhero 文件!

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

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

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

Redis 是一個功能強大且極速的內存數據庫,具有多種用途。它可以作為緩存系統、鍵值存儲、促進實時數據排序,並作為發布-訂閱隊列和事件系統運行。

警告 Redis 已更改其許可證,不再是開源的。 社群、開發者和公司創建了一個名為 Valkey 的 Redis 分支,這是一個可以直接替代 Redis 的選擇。 我們建議使用 Valkey 代替 Redis。

為了幫助您入門,我們分享了一些代碼範例,展示如何連接到 Redis 實例。您可以在以下 GitHub 儲存庫中找到這些範例:https://github.com/stackhero-io/redisGettingStarted

首先,您可能需要安裝 "redis" gem。您可以通過運行以下命令來完成:

bundle add redis

接下來,打開 config/environments/production.rb 文件,並添加以下行:

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

最後,定義 REDIS_URL 環境變量。以下是您可以使用的模板,請用您的詳細信息替換:

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

警告 默認情況下,緩存僅在生產環境中啟用。如果您希望在開發過程中測試緩存,可以編輯 config/environments/development.rb 文件。添加上述配置並包括 config.action_controller.perform_caching = true 以啟用緩存。驗證緩存是否工作的簡單方法是啟動 Rails 控制台(使用 bin/rails console)並通過寫入 Rails.cache.write("foo", "bar") 進行測試。

有關將 Redis 配置為 Ruby on Rails 緩存系統的更多詳細信息,請查看官方 Rails 文檔

Sidekiq 將自動使用 REDIS_URL 環境變量中指定的 Redis 服務器。

您可以按如下方式使用您的具體信息定義 REDIS_URL 環境變量:

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

有關使用 Sidekiq 與 Redis 的更多見解,請參閱官方 Sidekiq 文檔

Resque 與 Sidekiq 一樣,將使用 REDIS_URL 環境變量中定義的 Redis 服務器。

按如下方式設置 REDIS_URL

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

有關使用 Resque 與 Redis 的更多信息,請訪問官方 Resque 文檔

您可以使用以下代碼在 Stackhero 上的 Redis 中存儲 PHP 會話:

<?php

// 解析 Redis URL
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');

// 配置會話處理器
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");

// 開始會話
session_start();

?>

為了確保您的 Redis 實例安全,實施某些安全措施是至關重要的。

默認情況下,Redis 不加密通信。然而,在 Stackhero 上,我們已經默認集成了 TLS 加密。

要利用這一點,請配置您的 Redis 客戶端以使用 TLS 加密,並通過 <PORT_TLS> 端口連接到您的實例。避免使用 <PORT_CLEAR>,因為它不加密數據。

最好的部分是,您不需要在您的端進行其他操作,我們已經處理了複雜的設置。

您的 Redis 實例使用密碼保護,Stackhero 自動將其設置為高度安全的默認值。如果您選擇更改它,請確保選擇一個極其複雜的密碼。

Redis 非常高效,但缺乏內置的暴力攻擊保護,這使得攻擊者可能每秒測試多達 150,000 種密碼組合。

為了抵消這一風險,我們強制要求密碼至少為 16 個字符(提供約 4.5231285e+74 種組合)。默認情況下,我們使用 64 個字符的密碼(提供約 9.61963e+111 種組合)。

為了增強安全性並顯著降低暴力攻擊的風險,強烈建議配置 Stackhero 的防火牆設置(在 "Firewall" 標籤下找到)以嚴格限制連接到您的 IP 地址。這一步對於增強您的安全姿態至關重要。