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

開始之前,您可以先安裝 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_URL environment variable 中定義的 Redis server。

您可以像這樣用自己的連線資料設定 REDIS_URL

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

如需更多關於 Sidekiq 配合 Redis 使用的詳情,您可以參考 Sidekiq 官方文件

與 Sidekiq 一樣,Resque 會使用在 REDIS_URL environment variable 中定義的 Redis server。

您可以像這樣用自己的資料設定 REDIS_URL

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

如需更多關於 Resque 配合 Redis 使用的資訊,您可以參考 Resque 官方文件

如果您想把 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 instance 安全非常重要,而幾項簡單措施已經可以帶來很大分別。

預設情況下,Redis 不會加密 network traffic。在 Stackhero 上,TLS encryption 預設已啟用。

要使用這項功能,您可以把 Redis client 設定為使用 TLS,並透過 <PORT_TLS> port 連接。一般建議只在特定情況下才使用 <PORT_CLEAR>,即未加密流量屬合適的情境;而 <PORT_TLS> 則提供加密通訊。

好消息是,server 端無需額外設定。我們已經為您處理好這部分。

您的 Redis instance 受密碼保護,而 Stackhero 預設會自動產生一組高強度密碼。如果您決定更改,建議選用非常長且複雜的密碼。

Redis 極為快速,能處理非常大量的 authentication attempts。實際上,這代表攻擊者理論上每秒最多可嘗試 150,000 組密碼組合。

為了加強保護,我們強制要求密碼最少 16 個字元,這大約代表 4.5231285e+74 種可能組合。預設情況下,Stackhero 使用 64 字元密碼,約有 9.61963e+111 種可能組合。

如需更強保護,您亦可以在 Firewall 分頁中設定 Stackhero firewall rules,只允許來自您自己 IP addresses 的連線。這是提升整體安全狀態最有效的方法之一。