• Redis 发布与订阅


    Redis 提供的发布与订阅命令

    命令用例和描述
    SUBSCRIBE SUBSCRIBE channel [channel ...] —— 订阅给定的一个或多个频道
    UNSUBSCRIBE UNSUBSCRIBE [channel [channel ...]] —— 退订给定的频道,如果没有给定则退订所有
    PUBLISH PUBLISH channel message —— 向给定的频道发送消息
    PSUBSCRIBE PSUBSCRIBE pattern [pattern ...] —— 订阅与给定模式相匹配的所有频道
    PUNSUBSCRIBE PUNSUBSCRIBE [pattern [pattern ...]] —— 退订给定的模式,如果没有指定则退订所有

    Python 示例 :

    import time
    import threading
    import redis
    ​
    conn = redis.Redis()
    ​
    def publisher(n):
        time.sleep(1)
        for i in range(n):
            # 将消息发布到频道
            conn.publish('channel', i)
            time.sleep(1)
    ​
    def run_pubsub():
        threading.Thread(target=publisher, args=(3,)).start()
        pubsub = conn.pubsub()
        # 订阅频道
        pubsub.subscribe(['channel'])
        count = 0
        # 监听并打印消息
        for item in pubsub.listen():
            print(item)
            count += 1
            if count == 4:
                pubsub.unsubscribe()
            if count == 5:
                break
    ​
    ​
    run_pubsub()

    输出结果 :

    {'channel': b'channel', 'data': 1, 'type': 'subscribe', 'pattern': None}
    {'channel': b'channel', 'data': b'0', 'type': 'message', 'pattern': None}
    {'channel': b'channel', 'data': b'1', 'type': 'message', 'pattern': None}
    {'channel': b'channel', 'data': b'2', 'type': 'message', 'pattern': None}
    {'channel': b'channel', 'data': 0, 'type': 'unsubscribe', 'pattern': None}
  • 相关阅读:
    很实用的linux 上的svn安装和svnserver 的重启
    将单链表逆置*
    25 链队列
    24 顺序队列(循环队列)
    23 顺序队列
    界面常见的交互反馈
    事件
    22 链栈
    渲染“Hello World”(将脚本数据渲染在界面上)
    引用(import 和 include)
  • 原文地址:https://www.cnblogs.com/zawier/p/8530302.html
Copyright © 2020-2023  润新知