本文提供關於如何使用 Azure Managed Redis 進行開發的常見問題解答。
我要如何開始使用 Azure Managed Redis?
您可以透過多種方式開始使用 Azure Managed Redis。
- 你可以參考我們針對 .NET、 Java、 Node.js和 Python 提供的教學。
- 您可以探索 Azure Redis 學習路徑。
- 您可以查看與專案中所使用開發語言相符之範例用戶端的用戶端文件。 有許多 Redis 用戶端可與 Azure Managed Redis 搭配使用。 如需 Redis 用戶端清單,請參閱 https://redis.io/clients。
如果您尚未擁有 Azure 帳戶,您可以:
- 免費開立 Azure 帳戶。 您會獲得可用來試用付費 Azure 服務的額度。 即使額度用盡後,您仍可保留帳戶並使用免費的 Azure 服務和功能。
- 啟用 Visual Studio 訂閱者權益。 MSDN 訂閱可每月提供信用額度,讓您使用付費型 Azure 服務。
StackExchange.Redis 組態選項的作用是什麼?
StackExchange.Redis 提供多種選項。 本節說明部分常見設定。 如需 StackExchange.Redis 選項的詳細資訊,請參閱 StackExchange.Redis 組態。
| ConfigurationOptions | 說明 | 建議 |
|---|---|---|
| AbortOnConnectFail | 當設定為 true 時,連線在發生網路失敗後無法重新連線。 | 設定為 false 可讓 StackExchange.Redis 自動重新連線。 |
| ConnectRetry | 在初始連線期間重複嘗試連線的次數。 | 請參閱下列注意事項以取得指引。 |
| ConnectTimeout | 連線作業的逾時時間 (毫秒)。 | 請參閱下列注意事項以取得指引。 |
通常用戶端的預設值已足夠。 您可以依據工作負載微調這些選項。
重試
- 對於 ConnectRetry 和 ConnectTimeout,一般指引是快速失敗並再次重試。 此指引取決於您的工作負載,以及您的用戶端發出 Redis 命令並接收回應平均所需的時間。
- 讓 StackExchange.Redis 自動重新連線,而非自行檢查連線狀態並重新連線。 避免使用 ConnectionMultiplexer.IsConnected 屬性。
- 雪球效應-您可能會遇到重試不斷累積且永遠無法復原的問題。 如果發生雪球效應,請考慮使用指數退避重試演算法,如 Microsoft Patterns & Practices 小組發佈的重試一般指引所述。
逾時值
- 請考量您的工作負載,並設定符合需求的值。 如果您要儲存大型值,請將逾時時間設定為較高的值。
- 將
AbortOnConnectFail設定為 false,並讓 StackExchange.Redis 自動重新連線。 - 使用單一且長時間存活的
ConnectionMultiplexer執行個體,而不是為每個要求建立新的連線。 - 將
ConnectionMultiplexer.ClientName屬性設定為應用程式執行個體的唯一名稱,以利診斷。 - 針對自訂工作負載使用多個
ConnectionMultiplexer執行個體。- 如果您的應用程式負載變化多端,您可以依照此模型進行。 例如:
- 您可以使用一個 multiplexer 來處理大型金鑰。
- 您可以使用一個 multiplexer 來處理小型金鑰。
- 您可以為所使用的每個 ConnectionMultiplexer 設定不同的連線逾時值和重試邏輯。
- 在每個 multiplexer 上設定
ClientName屬性,以協助進行診斷。 - 此指引可能有助於降低每個
ConnectionMultiplexer的延遲。
我可以使用哪些 Redis 用戶端?
Redis 的一大優點在於有許多用戶端支援各種不同的開發語言。 如需目前的用戶端清單,請參閱 Redis 用戶端。
是否有 Azure Managed Redis 的本機模擬器?
Azure Managed Redis 沒有本機模擬器。 不過,您可以在本機電腦上執行社群版 Redis,並連線至該執行個體,以獲得類似本機快取模擬器的體驗,如下列範例所示:
private static Lazy<ConnectionMultiplexer>
lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
{
// Connect to a locally running instance of Redis to simulate
// a local cache emulator experience.
return ConnectionMultiplexer.Connect("127.0.0.1:6379");
});
public static ConnectionMultiplexer Connection
{
get
{
return lazyConnection.Value;
}
}
Redis 原生可在 Linux 上執行,您也可以使用 Windows Subsystem for Linux 在 Windows 電腦上執行 Redis。 如需詳細資訊,請參閱在 Windows 上安裝 Redis
如何執行 Redis 命令?
您可以使用 Redis 命令中列出的任何命令,但 Azure Managed Redis 不支援的 Redis 命令除外。 您有多種方式可以執行 Redis 命令。
您也可以使用 Redis 命令列工具。 如需使用方式,請參閱使用 Azure Managed Redis 搭配 Redis 命令列工具
為什麼 Azure Managed Redis 沒有 MSDN 類別程式庫參考?
Microsoft Azure Managed Redis 以廣受歡迎的記憶體內資料存放區 Redis 為基礎。 您可以針對多種程式設計語言使用各式各樣的 Redis 用戶端。 每個用戶端都有自己的 API,會使用 Redis 命令呼叫 Azure Managed Redis 執行個體。
由於每個用戶端皆不相同,您無法在 MSDN 上找到集中式的類別參考。 每個用戶端都會維護自己的參考文件。 除了參考文件之外,還有多個教學課程示範如何使用不同語言和快取用戶端開始使用 Azure Managed Redis。
什麼是 Redis 資料庫?
Redis 資料庫只是同一個 Redis 執行個體內的資料邏輯分隔。 所有資料庫會共用快取記憶體,而特定資料庫的實際記憶體耗用量取決於該資料庫中儲存的金鑰和值。 目前 Azure Managed Redis 每個執行個體僅支援一個資料庫。
相關內容
深入了解其他 Azure Managed Redis 常見問題。