本文提供如何針對 Azure 受控 Redis 進行開發的常見問題的解答(預覽)。
如何開始使用 Azure 受控 Redis (預覽版)?
有數種方式可讓您開始使用 Azure 受控 Redis (預覽版)。
- 您可以查看我們針對 .NET、ASP.NET、Java、Node.js 和 Python 提供的其中一套教學課程。
- 您可以探索 Azure Redis 學習路徑
- 您可以參閱用戶端文件,了解符合您專案所用開發語言的範例用戶端。 有許多 Redis 用戶端可以搭配 Azure 受控 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
執行個體,而不針對每個要求建立新的連線。 如需管理連線方式的範例,請參閱使用 Redisconnection 連線快取中的 `RedisConnection` 類別。 - 將
ConnectionMultiplexer.ClientName
屬性設定為應用程式執行個體唯一名稱,以進行診斷。 - 針對自訂工作負載,使用多個
ConnectionMultiplexer
執行個體。- 如果您的應用程式中有不同的負載,則可以遵循此模型。 例如:
- 您可以有一個多工器來處理大型索引鍵。
- 您可以有一個多工器來處理小型索引鍵。
- 您可以設定連線逾時的不同值,以及每個所使用 ConnectionMultiplexer 的重試邏輯。
- 在每個多工器上設定
ClientName
屬性,以協助診斷。 - 本指南可能會導致每個
ConnectionMultiplexer
的更簡化延遲。
我可以使用哪些 Redis 用戶端?
Redis 最大的好處是,有許多用戶端支援許多不同的開發語言。 如需最新的用戶端清單,請參閱 Redis 用戶端。 如需涵蓋數種不同語言和客戶端的教學課程,請參閱 如何使用 Azure 受控 Redis。
是否有 Azure 受控 Redis 的本機模擬器?
Azure 受控 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 子系統 Linux 版在 Windows 電腦上執行 Redis。 如需詳細資訊,請參閱 在 Windows 上安裝 Redis
如何執行 Redis 命令?
除了 Azure Managed Redis 不支援的 Redis 命令中列出的命令之外,您可以使用 Redis 命令中列出的任何命令。 您有幾種方式可以執行 Redis 命令。
您也可以使用 Redis 命令列工具。 若要使用它們,請參閱 搭配 Azure 受控 Redis 使用 Redis 命令行工具
為什麼 Azure 受控 Redis 沒有 MSDN 類別庫參考?
Microsoft Azure 受控 Redis 是以常用的記憶體內部數據存放區 Redis 為基礎。 您可以為許多程式語言使用各式各樣的 Redis 用戶端 (英文)。 每個用戶端都有自己的 API,可使用 Redis 命令呼叫 Azure 受控 Redis 實例。
因為每個用戶端都不同,所以在 MSDN 上找不到單個集中式的類別參考。 每個用戶端都會維護自己的參考文件。 除了參考檔之外,還有數個教學課程示範如何使用不同語言和快取客戶端開始使用 Azure 受控 Redis。 若要存取這些教學課程,請參閱 如何使用 Azure 受控 Redis 及其目錄中的同層級文章。
什麼是 Redis 資料庫?
Redis 資料庫就是相同 Redis 執行個體內的資料邏輯分隔。 所有資料庫之間會共用快取記憶體,給定資料庫的實際記憶體耗用量取決於該資料庫中儲存的索引鍵/值。 現在,Azure 受控 Redis 僅支援每個實例一個資料庫。
相關內容
瞭解其他 Azure 受控 Redis 常見問題。