我正在使用redis-py。我订阅了redis数据库并阅读如下通知:
>>> p.psubscribe("__keyspace@{}__:*".format(...))
>>> for message in p.listen():
... # do something with the message
我想获取消息的操作,例如DELETE或ADD,该怎么办?
谢谢〜
答案 0 :(得分:0)
根据文档(https://github.com/andymccurdy/redis-py#publish--subscribe),调用listen()
时,message
作为字典返回:
- 类型:以下之一:'subscribe','unsubscribe','psubscribe','punsubscribe','message','pmessage'
- 频道:[取消]订阅的频道或消息发布到的频道
- 模式:与已发布消息的频道匹配的模式。除“ pmessage”类型外,在所有情况下均为“无”。
- data:消息数据。对于[un] subscribe消息,此值将是该连接当前订阅的通道和模式的数量。对于[p]条消息,此值将是实际发布的消息。
对于'__keyspace *'模式,data
字典中的message
键保存操作的名称。换句话说:
>>> p.psubscribe("__keyspace@{}__:*")
>>> for message in p.listen():
... print(message['data']) # print the operation
注意:您的示例中似乎不需要调用format(...)
。