管道&发布订阅

管道-事务

默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且支持事务。

import redis

pool = redis.ConnectionPool(host='公网ip', port=6379, password='redis密码')
r = redis.Redis(connection_pool=pool)

pipe = r.pipeline(transaction=True) # 指定开启事务
pipe.set('first', 100)    # 管道内放第一个元素
pipe.set('second', 200)    # 管道内放第二个元素

pipe.execute()      # 确认执行的操作,只有确认了才写入数据库
    

发布订阅

应用于时时聊天系统或者粉丝关注,明星发明微博,粉丝们时时收到消息的情况。

发布者

import redis

pool = redis.ConnectionPool(host='公网ip', port=6379, password='redis密码')
r = redis.Redis(connection_pool=pool)


r.publish("fm104.5", "Hi,yuan!")    # 向 ‘频道内’发布消息

订阅者

import redis

pool = redis.ConnectionPool(host='公网ip', port=6379, password='redis密码')
r = redis.Redis(connection_pool=pool)

pub = r.pubsub()    # 订阅对象

pub.subscribe("fm104.5")    # 订阅一个频道的意思,即监听某个name
pub.parse_response()    # 解析响应内容

while 1:
    msg = pub.parse_response()  # 解析影响内容
    print(msg)
posted @ 2020-05-08 22:52  the3times  阅读(186)  评论(0)    收藏  举报