我可以通过启动服务器以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
答案 0 :(得分:2)
Keyspace通知不报告该值,只有已执行的密钥的名称和/或命令包含在已发布的消息中。
对此的主要推理理由是Redis值可能变得非常大。
如果你真的真的需要这种行为,那么实际上这很容易。由于键空间通知使用了发布/订阅消息,因此您可以在每次相关操作后自己致电PUBLISH
,并使用您感兴趣的信息。