這很重要
Azure Cache for Redis 宣布了所有 SKU 的淘汰時間表。 建議您儘快將現有的 Azure Cache for Redis 執行個體移至 Azure 受控 Redis 。
有關退役的更詳細資訊:
Azure Cache for Redis 是以 Redis 開放原始碼記憶體內部數據存放區為基礎。 適用於許多程式設計語言的 Redis 用戶端可以存取 Azure Redis。 您的應用程式可以使用任何與開放原始碼 Redis 相容的用戶端連結庫來連線到您的 Azure Redis 快取。
每個用戶端連結庫都有自己的 API,可使用 Redis 命令呼叫 Redis 伺服器。 用戶端連結庫的建置是為了與任何 Redis 伺服器通訊。
用戶端會維護自己的連結庫的參考檔,並提供連結,以透過用戶端連結庫開發人員社群取得支援。 Microsoft 和 Azure Redis 團隊不負責任何用戶端程式庫的開發或支援。
Microsoft 和 Azure Redis 會根據函式庫的熱門程度及是否有活躍的在線支援社群來回答問題,推薦一些函式庫。 這些程式庫正在積極開發中,通常會發佈具備更高可靠性和效能提升的新版本。 Microsoft建議使用最新的可用版本,並在新版本可用時定期升級。
下表列出了一些建議的客戶端程式庫的連結與文件。
| 用戶端程式庫 | 語言 | GitHub 存放庫 | 文件集 |
|---|---|---|---|
| StackExchange.Redis | C#/.NET | https://github.com/StackExchange/StackExchange.Redis | StackExchange.Redis |
| Jedis | JAVA | https://github.com/redis/jedis | |
| 生菜 | JAVA | https://github.com/lettuce-io/ | Lettuce - 進階 Java Redis 用戶端 |
| 雷迪森 | JAVA | https://github.com/redisson/redisson | Redisson - Redis Java 客戶端 Real-Time 資料平臺 |
| ioredis | Node.js | https://github.com/luin/ioredis | 類別 |
| node_redis | Node.js | https://github.com/redis/node-redis |
附註
您的應用程式可以使用任何與開放原始碼 Redis 相容的用戶端連結庫來連線到您的 Azure Redis 實例。
用戶端程式庫特定的指引
如需用戶端程式庫的特定指引和最佳做法,請參考以下資源:
用戶端程式庫的使用方式
除了參考檔之外,您還可以使用下列教學課程來開始使用不同語言和快取用戶端的 Azure Redis:
- 撰寫 .NET Framework 應用程式的程式碼
- 撰寫 .NET Core 應用程式的程式碼
- 撰寫 ASP.NET Web 應用程式的程式碼
- 撰寫 ASP.NET Core Web 應用程式的程式碼
- 撰寫 Java 應用程式的程式碼
Redisson(Java)的最佳實踐
以下是 Redisson 用戶端庫的一些建議最佳做法:
使用 Redisson 3.14.1 或更高版本。 舊版包含已知的連線遺漏問題,其會在容錯移轉之後發生問題。
請注意監控 Redisson 變更記錄,以便掌握可能會影響您應用程式功能的已知問題。 如需詳細資訊,請參閱《雷迪森發行史》和《雷迪森常見問題》。
如果您不想使用
readMode,請修改組態設定。 與其他一些用戶端不同,Redisson 預設使用read from replica。若要降低主動式重新連線行為或 連線風暴的風險,請考慮設定較少的最小聯機。
Redisson 有一個連線集區策略,其中具有可設定的最小值和最大值設定,且預設的最小值很大。 大範圍的預設設定可能會造成激進的重新連線行為或連線風暴。 若要降低此風險,請考慮使用較少的連線。 您可以透過數個連線有效率地串接命令或批次命令。
必要時重設閒置連接逾時。 Redisson 的預設閒置連線逾時為 10 秒,這可能會導致比理想情況下更多次的連線關閉和重新開啟。
如需搭配 Java EE JCache 使用 Redisson 將 HTTP 會話狀態儲存在 Azure Kubernetes Service (AKS) 叢集的相關資訊,請參閱 使用 Azure Redis 作為 WebSphere Liberty 或 Open Liberty 的會話快取。
針對叢集模式使用下列建議的基準組態,並視需要加以修改。
clusterServersConfig: idleConnectionTimeout: 30000 connectTimeout: 15000 timeout: 5000 retryAttempts: 3 retryInterval: 3000 checkLockSyncedSlaves: false failedSlaveReconnectionInterval: 15000 failedSlaveCheckInterval: 60000 subscriptionsPerConnection: 5 clientName: "redisson" loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {} subscriptionConnectionMinimumIdleSize: 1 subscriptionConnectionPoolSize: 50 slaveConnectionMinimumIdleSize: 2 slaveConnectionPoolSize: 24 masterConnectionMinimumIdleSize: 2 masterConnectionPoolSize: 24 readMode: "MASTER" subscriptionMode: "MASTER" nodeAddresses: - "redis://mycacheaddress:6380" scanInterval: 1000 pingConnectionInterval: 60000 keepAlive: false tcpNoDelay: true