すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):StackExchange.Redisの更新に関するお知らせ

最終更新日:Sep 10, 2024

2024年2月、StackExchange.Redisコミュニティは、StackExchange.Redisクライアントを使用して、マルチデータベースサポートが有効になっているプロキシモードの ApsaraDB for Redisインスタンスにアクセスしたときにタイムアウトエラーが発生するバグを修正しました。 StackExchange.Redisを2.7.20以降に更新して問題を解決できます。

詳細

影響範囲

次の条件をすべて満たすと、タイムアウトエラーが発生します。

  • StackExchange.Redisクライアントのバージョンが2.7.20より前です。

  • Redisインスタンスは、プロキシモードのクラスターインスタンスまたは読み書き分離インスタンスです。

  • SELECTコマンドを使用して、複数のデータベースを切り替えます。

サンプルエラー

1. StackExchange.Redis.RedisTimeoutException: Timeout performing xxx (5000ms), inst: 0, qu: 0, qs: 0, aw: False, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, serverEndpoint: XX.XX.XX.XX:6379, mgr: 10 of 10 available, clientName: 67c80fdab92d, PerfCounterHelperkeyHashSlot: 11235, IOCP: (Busy=0,Free=1000,Min=12,Max=1000), WORKER: (Busy=18,Free=32749,Min=12,Max=32767), v: xx.y.xx.xxx (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
2. Multiple databases are not supported on this server; cannot switch to database

に切り替えることはできません

原因

オープンソースのRedisクラスターは、複数のデータベースをサポートしません。 インスタンスをマスターレプリカアーキテクチャからクラスターアーキテクチャに切り替えた後は、SELECTコマンドを実行できません。 ただし、プロキシモードの ApsaraDB for Redisインスタンスは複数のデータベースをサポートしています。 プロキシモードでは、クラスターまたは読み書き分離インスタンスでSELECTコマンドを実行して、別のデータベースに切り替えることができます。 この機能を使用して、スタンドアロンインスタンスをクラスターまたは読み書き分離インスタンスにアップグレードできます。 詳細については、「」「プロキシノードの機能」をご参照ください。

2.7.20より前のStackExchange.Redisバージョンは、Alibaba Cloud Redisのプロキシノードをクラスターと誤認しています。 そのため, SELECTコマンドは実行できません。 この問題はStackExchange.Redis 2.7.20で修正されました。

解決策

StackExchange.Redisを2.7.20以降に更新します。

関連ドキュメント