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

Redis:如何区分跨多个数据库的客户端跟踪密钥失效,redis,cache-invalidation,Redis,Cache Invalidation,是否有任何方法来区分失效适用于哪个数据库 例如: 跟踪插座: 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 //VALU

是否有任何方法来区分失效适用于哪个数据库

例如:

跟踪插座:

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
我遇到的问题是,在数据库2中设置MYKEY时,跟踪套接字接收到:redis:invalidate 1)MYKEY。然而,我想要跟踪的关键是数据库1

除了重新设计应用程序以避免数据库间的密钥冲突或为每个数据库+跟踪创建套接字之外,我如何以有意义的方式使用跟踪

编辑:Redis 6.0.8独立安装找到了答案:

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