Pada Februari 2024, komunitas StackExchange.Redis memperbaiki bug yang menyebabkan error timeout. Bug tersebut terjadi ketika klien StackExchange.Redis mengakses instans Tair (Redis OSS-compatible) dalam modus proxy dan menggunakan fitur multiple database (DB). Untuk mengatasi masalah ini, tingkatkan klien StackExchange.Redis Anda ke versi 2.7.20 atau lebih baru.
Detail
Cakupan dampak
Error timeout terjadi jika semua kondisi berikut terpenuhi:
Versi klien StackExchange.Redis lebih lama dari 2.7.20.
Instans Tair menggunakan arsitektur kluster dengan modus proxy atau arsitektur pemisahan baca/tulis.
Fitur multiple DB digunakan, yang melibatkan eksekusi perintah SELECT.
Contoh error
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 (Silakan lihat artikel ini untuk beberapa masalah umum di sisi klien yang dapat menyebabkan timeout: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
2. Multiple databases are not supported on this server; cannot switch to databasePenyebab
Kluster Redis open-source tidak mendukung multiple database. Akibatnya, Anda tidak dapat menjalankan perintah SELECT setelah migrasi dari arsitektur primary/standby ke arsitektur kluster. Namun, modus proxy pada Tair (Redis OSS-compatible) mendukung multiple database. Modus ini memungkinkan Anda menggunakan perintah SELECT untuk berpindah antar database yang berbeda dalam arsitektur kluster atau arsitektur pemisahan baca/tulis. Fitur ini mempermudah proses peningkatan dari versi standalone ke arsitektur kluster atau pemisahan baca/tulis. Untuk informasi selengkapnya, lihat Ikhtisar fitur Proxy Tair.
Versi StackExchange.Redis sebelum 2.7.20 salah mengidentifikasi node proxy Tair sebagai node kluster standar. Hal ini menyebabkan perintah SELECT gagal. Masalah ini telah diperbaiki pada StackExchange.Redis versi 2.7.20.
Resolusi
Tingkatkan StackExchange.Redis ke versi 2.7.20 atau lebih baru.