Redis 键空间通知 - 获取键和值更改

vgo*_*ani 11 python redis

通过启动服务器,我可以在 redis 中接收密钥更改发布订阅通知:

./redis-server --notify-keyspace-events KEA
Run Code Online (Sandbox Code Playgroud)

然后只需运行以下脚本:

import redis
connection = redis.StrictRedis()
pubsub = connection.pubsub()

pubsub.subscribe("__keyspace@0__:my_key")
Run Code Online (Sandbox Code Playgroud)

在单独的侦听器线程中。收到的消息如下所示:

{'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:my_key', 'data': 'set'}
Run Code Online (Sandbox Code Playgroud)

我希望在消息中看到的是更新后的“键”相应的“值”。如何通过 pubsub 获取新值?

第二个问题:我如何接收所有“关键”更新。我试过这个:

pubsub.subscribe("__keyspace@0__:*")
Run Code Online (Sandbox Code Playgroud)

但不幸的是它没有返回任何东西。

这是一个很好的入门参考:Redis keyspace event not-firing

Ita*_*ber 12

密钥空间通知报告值,仅密钥的名称和/或执行的命令包含在发布的消息中。

对此的主要基础推理是 Redis 值可能会变得非常大。

如果你真的真的真的需要这种行为,那实际上很容易。由于键空间通知使用 Pub/Sub 消息,因此您可以PUBLISH在每次相关操作后调用自己,并使用您感兴趣的信息。