管道&发布订阅

管道

  • redis支持事务
  • redis如何实现事务
# 创建连接池对象
import redis
class Pool:
    _instance = None
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = redis.ConnectionPool(host='127.0.0.1',port=6379,max_connections=100)
        return cls._instance
pool = Pool()
conn = redis.Redis(connection_pool=pool)

# 基于管道支持事务
pipe = conn.pipeline(transaction=True)
pipe.multi()
pipe.set('age',18)
pipe.set('age1',19)
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-07-26 17:28  微信搜索-程序媛小庄  阅读(103)  评论(0编辑  收藏  举报