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

时间:2017-03-02 12:41:01

标签: python redis

我可以通过启动服务器以redis方式接收密钥更改pub-sub通知:

./redis-server --notify-keyspace-events KEA

然后只需运行以下脚本:

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

pubsub.subscribe("__keyspace@0__:my_key")

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

{'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:my_key', 'data': 'set'}

我希望在邮件中看到的是更新的"密钥" 相应的"值"。如何通过pubsub获取新值?

第二个问题:我如何收到所有" key"更新。我试过这个:

pubsub.subscribe("__keyspace@0__:*")

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

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

1 个答案:

答案 0 :(得分:2)

Keyspace通知报告该值,只有已执行的密钥的名称和/或命令包含在已发布的消息中。

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

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