• Python 操作 Redis 发布订阅


    Python 操作 Redis 发布订阅

    介绍

    Redis可以通过多个客户机订阅相同的频道,一个服务机在相应频道进行发布,从而实现在客户机收听服务机发布相应信息,可以利用这个机制实现多个客户机之间的信息同步等。

    可以通过开启两个redis-cli终端

    订阅端:

    image-20210809112553514

    发布端:

    发布端在test频道发布一个Hello!信息,此时回到订阅端,即可看到收到相应的信息

    image-20210809112844851

    Python操作

    首先需要安装redis这个库

    pip install redis
    

    首先通过Python编写发布端的代码,注意,redis使用的数据均为字符串,所以对于list或者dict,可以通过json进行序列化操作,才能实现存储。

    import json
    import time
    
    import redis
    
    # 获取redis连接
    r = redis.Redis(host="192.168.0.103", port=6379)
    
    # 定义数据
    data = "Hello World!"
    
    # 每隔1s发布一份数据在test频道
    while True:
        r.publish("test", json.dumps(data))
        time.sleep(1)
    

    订阅端相对复杂一些:

    import json
    import time
    
    import redis
    
    # 获取redis连接
    r = redis.Redis(host="192.168.0.103", port=6379)
    # 初始化监听实例,括号内数据代表忽略收听频道发送的消息
    listen = r.pubsub(ignore_subscribe_messages=True)
    # 订阅test频道,可以为多个
    listen.subscribe("test")
    
    while True:
        # 获取频道的消息
        msg = listen.get_message()
        if msg:
            # json反序列化
            data = json.loads(str(msg["data"], encoding='utf-8'))
            print(data)
        time.sleep(1)
    

    还有更具体的操作可以查看官方GitHub

  • 相关阅读:
    异常单据锁定涉及的数据库表
    用友通只启用核算模块
    一个迟到MM如何让老师疯掉的
    偷偷看,别笑出声啊
    安装时又提示删除程序
    自动折行的设置
    酒后百态新编 恶搞
    系统管理中“站点”“运行状态”的含义
    神经病女士银行取钱
    HDOJ 1017
  • 原文地址:https://www.cnblogs.com/JoshuaYu/p/15119650.html
Copyright © 2020-2023  润新知