Azure Cache for Redis 開發常見問題

本文提供如何針對 Azure Cache for Redis 進行開發的常見問題的解答。

如何開始使用 Azure Cache for Redis?

有數種方式可讓您開始使用 Azure Cache for Redis。

如果您還沒有 Azure 帳戶,您可以:

  • 免費開啟 Azure 帳戶。 您可以取得可用來試用付費 Azure 服務的點數。 即使在點數用完之後,您也可以保留帳戶並使用免費的 Azure 服務和功能。
  • 啟用 Visual Studio 訂閱者權益。 MSDN 訂閱可每月提供信用額度,讓您使用付費型 Azure 服務。

StackExchange.Redis 組態選項有何用途?

StackExchange.Redis 有許多選項。 本節將討論一些常見的設定。 如需 StackExchange.Redis 選項的詳細資訊,請參閱 StackExchange.Redis 組態

ConfigurationOptions 描述 建議
AbortOn 連線 Fail 當設定為 true 時,連線無法在網路失敗後重新連線。 設定為 false,並讓 StackExchange.Redis 自動重新連線。
連線 Retry 在初始連接期間重複連接嘗試的次數。 如需指引,請參閱下列注意事項。
ConnectTimeout 線上作業的毫秒逾時。 如需指引,請參閱下列注意事項。

客戶端的預設值通常已足夠。 您可以根據工作負載微調選項。

重試

  • 針對 連線 Retry 和 連線 Timeout,一般指引是快速失敗,然後再重試一次。 本指南是以您的工作負載和平均時間------客戶端發出 Redis 命令並接收回應所花費的時間為基礎。
  • 讓 StackExchange.Redis 自動重新連線,而不是檢查連線狀態並自行重新連線。 避免使用 連線 ionMultiplexer.Is連線 屬性
  • 雪球 - 您可能會遇到您要重試的問題,並重試雪球,永遠不會復原。 如果發生雪球,請考慮使用指數輪詢重試演算法,如 Microsoft Patterns & Practices 群組所發佈的重試一般指引中所述

逾時值

  • 請考慮您的工作負載,並設定要比對的值。 如果您要儲存大型值,請將逾時設定為較高的值。
  • 設定 AbortOnConnectFail 為 false,並讓 StackExchange.Redis 為您重新連線。
  • 使用單一長期存留 ConnectionMultiplexer 實例,而不是為每個要求建立新的連線。 如需如何管理連線的範例,請參閱使用 Redis 連線 ion 快取 連線 中的 'Redis 連線 ion'' 類別。
  • 針對診斷目的,將 ConnectionMultiplexer.ClientName 屬性設定為應用程式實例的唯一名稱。
  • 針對自定義工作負載使用多個 ConnectionMultiplexer 實例。
    • 如果您的應用程式中負載不同,您可以遵循此模型。 例如:
    • 您可以有一個多任務器來處理大型金鑰。
    • 您可以有一個多任務器來處理小型金鑰。
    • 您可以針對您使用的每個 連線 ionMultiplexer,設定不同的連線逾時值和重試邏輯。
    • ClientName設定每個多任務器上的 屬性,以協助診斷。
    • 本指南可能會導致每個 ConnectionMultiplexer的更簡化延遲。

我可以使用哪些 Azure Cache for Redis 用戶端?

Redis 的其中一件好事是有許多用戶端支援許多不同的開發語言。 如需目前的用戶端清單,請參閱 Redis 用戶端。 如需涵蓋數種不同語言和客戶端的教學課程,請參閱 如何使用 Azure Cache for Redis

從 Azure 入口網站 擷取主機名、埠和存取密鑰

若要連線 Azure Cache for Redis 伺服器,快取用戶端需要快取的主機名、埠和密鑰。 有些用戶端可能會以稍微不同的名稱來參考這些專案。 您可以從 Azure 入口網站 取得主機名、埠和金鑰

  • 若要取得存取金鑰,請從 [資源] 功能選取 [ 驗證 ]。 然後,選取 [ 存取金鑰] 索引標籤

    Azure Cache for Redis 金鑰

  • 若要取得快取的主機名和埠,請從 [資源] 功能表中選取 [概觀 ]。 主機名的格式為 DNS name.redis.cache.windows.net>。<

    Azure Redis 快取屬性

是否有 Azure Cache for Redis 的本機模擬器?

Azure Cache for Redis 沒有本機模擬器。 您可以從本機電腦上的 Redis 命令行工具執行 MSOpenTech 版本的 redis-server.exe。 然後,連線到它以取得與本機快取模擬器類似的體驗,如下列範例所示:

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.conf 檔案,以更符合 您在線 Azure Redis 快取的預設快取設定

如何執行 Redis 命令?

除了 Azure Cache for Redis 不支援的 Redis 命令中列出的命令之外,您可以使用 Redis 命令中列出的任何命令。 您有數個選項可執行 Redis 命令。

如果您有標準或 進階版 快取,您可以使用 Redis 控制台執行 Redis 命令。 Redis 主控台提供在 Azure 入口網站 中執行 Redis 命令的安全方式。

您也可以使用 Redis 命令列工具。 若要使用它們,請執行下列步驟:

  1. 下載 Redis 命令行工具

  2. 使用 redis-cli.exe連線 快取。

  3. 使用 -h 參數傳入快取端點,並使用 -a 的金鑰,如下列範例所示:

    redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

注意

Redis 命令行工具無法與 TLS 連接埠搭配使用,但您可以使用公用程式,例如stunnel,依照如何使用 Redis 命令行工具搭配 Azure Cache for Redis 一文中的指示,安全地將工具連線到 TLS 連接埠。

為什麼 Azure Cache for Redis 沒有 MSDN 類別庫參考?

Microsoft Azure Cache for Redis 是以熱門的記憶體內部開放原始碼數據存放區 Redis 為基礎。 您可以針對許多程式設計語言使用各種不同的 Redis 用戶端 。 每個用戶端都有自己的 API,可使用 Redis 命令呼叫 Azure Cache for Redis 實例。

因為每個用戶端都不同,因此您無法在 MSDN 上找到一個集中式類別參考。 每個客戶端都會維護自己的參考檔。 除了參考檔之外,還有數個教學課程示範如何使用不同語言和快取客戶端開始使用 Azure Cache for Redis。 若要存取這些教學課程,請參閱 如何使用 Azure Cache for Redis 及其目錄中的同層級文章。

是否可以使用 Azure Cache for Redis 作為 PHP 會話快取?

是,若要使用 Azure Cache for Redis 作為 PHP 會話快取,請在 中指定 Azure Cache for Redis 實例 連接字串session.save_path

重要

使用 Azure Cache for Redis 作為 PHP 工作階段快取時,您必須將用來連線至快取的安全性密鑰進行 URL 編碼,如下列範例所示:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

如果金鑰未編碼 URL,您可能會收到例外狀況,訊息如下: Failed to parse session.save_path

如需搭配 PhpRedis 用戶端使用 Azure Cache for Redis 作為 PHP 會話快取的詳細資訊,請參閱 PHP 會話處理程式

什麼是 Redis 資料庫?

Redis 資料庫只是相同 Redis 實例內數據的邏輯區隔。 快取記憶體會在所有資料庫與指定資料庫的實際記憶體耗用量之間共用,取決於儲存在該資料庫中的索引鍵/值。 例如,C6 快取有 53 GB 的記憶體,而 P5 有 120 GB。 您可以選擇將所有 53 GB /120 GB 放入一個資料庫,也可以將其分割成多個資料庫。

注意

使用已啟用叢集的 azure Cache for Redis 進階版 時,只能使用資料庫 0。 這項限制是內部 Redis 限制,並非 Azure Cache for Redis 專屬。

了解其他 Azure Cache for Redis 常見問題集