代码之家  ›  专栏  ›  技术社区  ›  batmancn

订阅redis数据库时,如何知道通知消息的操作?

  •  0
  • batmancn  · 技术社区  · 5 年前

    我在用redis py。我订阅了redis数据库并阅读了如下通知:

    >>> p.psubscribe("__keyspace@{}__:*".format(...))
    >>> for message in p.listen():
    ...     # do something with the message
    

    谢谢你~

    1 回复  |  直到 5 年前
        1
  •  0
  •   Itamar Haber    5 年前

    根据文件( https://github.com/andymccurdy/redis-py#publish--subscribe listen() ,和 message 作为字典返回:

    • 类型:以下之一:“subscribe”、“unsubscribe”、“psubscribe”、“punsubscribe”、“message”、“pmessage”
    • 模式:匹配已发布消息的频道的模式。除“pmessage”类型外,所有情况下都将为“无”。
    • 数据:消息数据。对于[取消]订阅消息,此值将是连接当前订阅的通道数和模式数。对于[p]消息消息,此值将是实际发布的消息。

    如果是'uuu keyspace*'模式,则 data 输入 dict保存操作的名称。换个说法:

    >>> p.psubscribe("__keyspace@{}__:*")
    >>> for message in p.listen():
    ...     print(message['data'])  # print the operation
    

    注意:呼叫 format(...)