Redis密钥空间通知到期未触发
我正在看这一页: 我在配置文件中设置了以下行:Redis密钥空间通知到期未触发,redis,Redis,我正在看这一页: 我在配置文件中设置了以下行: notify-keyspace-events "Kx" 当我执行此操作(然后运行最终使某些密钥过期的应用程序)时,我看不到任何事件: redis-cli --csv psubscribe '__keyspace*__:*expire*' 但是,当我将配置设置为: notify-keyspace-events "Kg" 然后运行相同的app和redis cli命令,我确实看到了事件: "pmessage","__keyspace*__:*exp
notify-keyspace-events "Kx"
当我执行此操作(然后运行最终使某些密钥过期的应用程序)时,我看不到任何事件:
redis-cli --csv psubscribe '__keyspace*__:*expire*'
但是,当我将配置设置为:
notify-keyspace-events "Kg"
然后运行相同的app和redis cli命令,我确实看到了事件:
"pmessage","__keyspace*__:*expire*","__keyspace@0__:spring:session:wca:sessions:expires:9d73fefc-459d-4bf4-83ef-b8fcbf06b997","expire"
"pmessage","__keyspace*__:*expire*","__keyspace@0__:spring:session:wca:sessions:expires:9d73fefc-459d-4bf4-83ef-b8fcbf06b997","expire"
"pmessage","__keyspace*__:*expire*","__keyspace@0__:spring:session:idp:sessions:expires:52dbe449-4616-41ef-bfa6-1d7a16a89f8a","expire"
"pmessage","__keyspace*__:*expire*","__keyspace@0__:spring:session:idp:sessions:expires:52dbe449-4616-41ef-bfa6-1d7a16a89f8a","expire"
"pmessage","__keyspace*__:*expire*","__keyspace@0__:spring:session:idp:sessions:expires:52dbe449-4616-41ef-bfa6-1d7a16a89f8a","expire"
"pmessage","__keyspace*__:*expire*","__keyspace@0__:spring:session:idp:sessions:expires:52dbe449-4616-41ef-bfa6-1d7a16a89f8a","expire"
我理解,当TTL已过时,到期不一定就发生了。但我不确定这是否解释了我所看到的情况——我的redis cli只查找“expire”事件,并且它在我通知通用命令时(并且仅在通知通用命令时)始终会看到它们。这对我的应用来说太健谈了;我只是想看看
感谢您的帮助。谢谢 您订阅了错误的频道 有两种通知:
- 密钥空间通知:频道为
__keyspace@__:
- 关键事件通知:频道为
__keyevent@__:
config set notify keyspace events Kx
psubscribe\uuuu键空间@*\uuuuu::
config set notify keyspace events Ex
psubscribe\uuuu keyevent@*\uuuuuu:expired
__keyevent@0__:过期
“而不是”__keyevent@0__:过期
“
请参阅本文件。我也面临同样的问题。我尝试了这个链接的解决方案,它成功了我很好奇当你做
AK
@Thymine IIRC时会发生什么我今天早些时候试过了。它起作用了,但是非常健谈。谢谢。我确实“通知密钥空间事件Kx”(根据文档),但我没有看到任何内容。正如我在回答中提到的,您订阅了错误的频道。你应该psubscribe\uuuuuuuuuuuuuuuuuuuuuuuuuu键空间@*.
Ah。我看到了区别。所以我想我的问题是:当我加上“g”时,它起作用了。通用的“expire”与“x”捕获的expire不同吗?如果不是,我不明白为什么完全相同的psubscribe在我添加g时才看到“expire”事件。(即,当我感兴趣的所有事件都过期时,为什么我必须通知所有通用事件?)
127.0.0.1:6379> subscribe __keyevent@0__:expired
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "__keyevent@0__:expired"
3) (integer) 1
1) "message"
2) "__keyevent@0__:expired"
3) "mykey"