我可以通过以下方式启动服务器来在 Redis 中接收 key 更改发布-订阅通知:
./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 获取新值?
第二个问题:如何接收所有“关键”更新。我试过这个:
pubsub.subscribe("__keyspace@0__:*")
但不幸的是它没有返回任何东西。
这是一个很好的入门引用:Redis keyspace event not-firing
最佳答案
键空间通知不报告值,只有键的名称和/或执行的命令包含在发布的消息中。
这样做的主要潜在原因是 Redis 值可能会变得非常大。
如果您真的真的真的需要这种行为,那么实际上这很容易。因为键空间通知使用 Pub/Sub 消息,所以您可以调用 PUBLISH
每次相关操作后,您自己都可以获取您感兴趣的信息。
关于python - Redis keyspace notifications - 获取键和值的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555832/