Redis®*: 快速開始
Redis 快速入門指南
👋 歡迎來到 Stackhero 文件!
Stackhero 提供一個即用型的 Redis cloud 解決方案,帶來多項好處,包括:
- 包含
Redis Commander網頁介面。- 無限制的訊息大小和傳輸。
- 只需一鍵即可輕鬆進行 更新。
- 由 專用私有 VM 提供的最佳 效能 和強大 安全性。
節省時間,簡化生活:只需 5 分鐘 即可嘗試 Stackhero 的 Redis cloud hosting 解決方案!
Redis 是一個功能強大而且極快的 in-memory database,可以擔當多種角色。您可以把它用作 cache、key-value store、real-time data structure engine,或者 publish/subscribe 及 event system。
Redis 再次成為 open source:自 Redis 8(2025 年 5 月)起,它以 GNU AGPLv3 授權提供。 如果您偏好採用寬鬆授權(BSD)的 drop-in 替代方案,社群主導的 fork Valkey 亦可在 Stackhero 上使用。
為了幫助您快速上手,我們分享了一些示範如何連接到 Redis instance 的程式碼範例。您可以在這個 GitHub repository 找到它們:https://github.com/stackhero-io/redisGettingStarted。
在 Ruby 和 Ruby on Rails 中使用 Redis
將 Redis 設定為 Ruby on Rails 的 cache system
開始之前,您可以先安裝 redis gem:
bundle add redis
接著,您可以開啟 config/environments/production.rb 並加入以下一行:
config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }
然後,您可以定義 REDIS_URL environment variable。以下是一個可按您的資料作調整的範本:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
預設情況下,cache 只會在 production environment 啟用。如果您想在 development 期間測試 cache,也可以更新
config/environments/development.rb。加入上面相同的設定,並加上config.action_controller.perform_caching = true以啟用 cache。一個簡單的確認方法,是用bin/rails console啟動 Rails console,然後嘗試Rails.cache.write("foo", "bar")。
如需更多關於在 Ruby on Rails 中把 Redis 用作 cache store 的詳情,您可以參考 Rails 官方文件。
為 Sidekiq 設定 Redis
Sidekiq 會自動使用在 REDIS_URL environment variable 中定義的 Redis server。
您可以像這樣用自己的連線資料設定 REDIS_URL:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
如需更多關於 Sidekiq 配合 Redis 使用的詳情,您可以參考 Sidekiq 官方文件。
為 Resque 設定 Redis
與 Sidekiq 一樣,Resque 會使用在 REDIS_URL environment variable 中定義的 Redis server。
您可以像這樣用自己的資料設定 REDIS_URL:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
如需更多關於 Resque 配合 Redis 使用的資訊,您可以參考 Resque 官方文件。
使用 Redis 處理 PHP sessions
如果您想把 PHP sessions 儲存在 Stackhero for Redis 上,可以使用以下範例:
<?php
// 解析 Redis URL
$redis_url = parse_url("rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>")
// 設定 session handler
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
session_start()
?>
加強 Redis 安全性
確保您的 Redis instance 安全非常重要,而幾項簡單措施已經可以帶來很大分別。
為 Redis 通訊加密(TLS)
預設情況下,Redis 不會加密 network traffic。在 Stackhero 上,TLS encryption 預設已啟用。
要使用這項功能,您可以把 Redis client 設定為使用 TLS,並透過 <PORT_TLS> port 連接。一般建議只在特定情況下才使用 <PORT_CLEAR>,即未加密流量屬合適的情境;而 <PORT_TLS> 則提供加密通訊。
好消息是,server 端無需額外設定。我們已經為您處理好這部分。
保護 Redis 免受 brute force attacks
您的 Redis instance 受密碼保護,而 Stackhero 預設會自動產生一組高強度密碼。如果您決定更改,建議選用非常長且複雜的密碼。
Redis 極為快速,能處理非常大量的 authentication attempts。實際上,這代表攻擊者理論上每秒最多可嘗試 150,000 組密碼組合。
為了加強保護,我們強制要求密碼最少 16 個字元,這大約代表 4.5231285e+74 種可能組合。預設情況下,Stackhero 使用 64 字元密碼,約有 9.61963e+111 種可能組合。
如需更強保護,您亦可以在 Firewall 分頁中設定 Stackhero firewall rules,只允許來自您自己 IP addresses 的連線。這是提升整體安全狀態最有效的方法之一。