Redis:如何区分跨多个数据库的客户端跟踪密钥失效

Redis: How to distinguish between client tracking invalidation of keys across multiple databases

有没有办法区分失效适用于哪个数据库?

示例:

跟踪插座:

CLIENT ID // 77
PSUBSCRIBE __redis__:*

主插座:

CLIENT TRACKING on REDIRECT 77 OPTIN

SELECT 1
SET MYKEY VALUE1
CLIENT CACHING YES
GET MYKEY //VALUE1

SELECT 2
SET MYKEY VALUE2
GET MYKEY //VALUE2

SELECT 1
GET MYKEY //VALUE1

我遇到的问题是跟踪套接字收到:redis:invalidate 1) MYKEY 当 MYKEY 设置在数据库 2 中时。但是我想跟踪的密钥在数据库 1.

没有重新设计应用程序以避免跨数据库的键冲突或为每个数据库+跟踪创建一个套接字,我如何以有意义的方式使用跟踪?

编辑:Redis 6.0.8 独立安装

Redis documentation中找到答案:

"只有一个键命名空间,没有按数据库编号划分。因此,如果客户端在数据库 2 中缓存键 foo,而其他一些客户端更改了数据库 3 中键 foo 的值,则无效消息仍将被发送。这样我们就可以忽略数据库编号,从而减少内存使用和实现复杂性。"