python - Redis keyspace notifications - 获取键和值的变化

标签 python redis

我可以通过以下方式启动服务器来在 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/

相关文章:

python - 如果一个线程成功,则终止所有其他线程

redis - StackExchange.Redis 支持 MONITOR 吗?

python - 为什么 Python/Django 不断重定向到 url 'catalog' ?

java - redis 缓存中的自定义名称

django - 如何在 celery 内为每个用户生成队列?

scala - 使用 Redis 存储 ListBuffer[List[Double]]

azure - 使用 ServiceStack 加密 Azure 上的 Redis 消息

python - 简单图像反卷积问题

python - 为什么相同的符号显示数组和矩阵的逐元素乘法,就像矩阵的乘法一样?

python - 如何在pandas的多列中使用melt函数?