[BUG] 在收到 SUBSCRIBE __redis__:invalidate 的 ACK 之前收到的无效消息
作者: nunojpg创建于 2024年11月8日更新于 2026年9月25日
我在 Docker 上尝试了 6、7 和 8。我在 A 上使用的连接对是:
CLIENT TRACKING ON REDIRECT <B id> prefix <...> BCAST NOLOOP
而在 B 上:
SUBSCRIBE __redis__:invalidate
对此,我得到的结果是预期的 ">3\r\n$9\r\nsubscribe\r\n$20\r\n__redis__:invalidate\r\n:1\r\n",然后可以接收无效化消息,例如:
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd111\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd112\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd113\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd114\r\n但是,如果我在高速外部设置键时发出 SUBSCRIBE 指令,我会看到以下情况:
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd111\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd112\r\n
>3\r\n$9\r\nsubscribe\r\n$20\r\n__redis__:invalidate\r\n:1\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd113\r\n
>2\r\n$10\r\ninvalidate\r\n*1\r\n$23\r\nb:05aabbccddeeff:Cmd114\r\n是否允许按错误顺序接收 SUBSCRIBE ACK,或者这是一个 bug?
内容来源: redis/redis