• python学习之-- redis模块管道/订阅发布


    redis 模块操作剩余其他常用操作

    delete(*names):删除任意的数据类型
    exists(name):检测redis的name是否存在
    keys(pattern='*'):根据模型获取redis的name
    keys * 匹配数据库中所有Key
      keys h?llo:匹配hello,hallo,hxllo等
    expire(name,time):为redis的某个name设置超时时间
    rename(src,dst):对redis的name重命名
    move(name,db):将redis的某个值移动到指定的db下
    randomkey():随机获取一个redis的name(不删除)
    type(name):获取name对应的类型
    scan(cursor=0, match=None, count=None)
    scan_iter(match=None, count=None)
    # 同字符串操作,用于增量迭代获取key

    管道
    redis-py默认在执行每次请求都会创建(连接池申请链接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求执行多个命令,并且默认情况下一次pipline是原子性操作。

    实例

    1 import redis
    2 pool = redis.Connection(host='10.10.2.12',port=6379,db=5)  # 可以设置存储使用的db,默认是0
    3 r = redis.Redis(connection_pool=pool)
    4 pipe = r.pipeline(transaction=True)  # 启动管道
    5 pipe.set('name','jack')  # 写数据
    6 pipe.set('age',20)
    7 pipe.execute()  # 启动执行
    View Code

    订阅/发布举例:

    主程序类:

     1 import redis
     2 class RedisHelper(object):
     3     def __init__(self):
     4         self.__conn = redis.Redis(host='10.10.2.14',port=6379)
     5         self.chan_sub = 'fm104.5'
     6         self.chan_pub = 'fm104.5'
     7     def public(self,msg):  # 发布
     8         self.__conn.publish(self.chan_pub,msg)  # 向chan_pub的频道发Msg消息,publish是redis的方法
     9         return True
    10     def subscribe(self):  # 订阅
    11         pub = self.__conn.pubsub()  # 开始订阅==打开收音机
    12         pub.subscribe(self.chan_sub)  # 选择频道为fm104.5
    13         pub.parse_response()  # 准备接收,启动程序里再次调用parse_response才进入接收
    14         return pub
    View Code

    订阅:

    1 from redis_helper import RedisHelper
    2 obj = RedisHelper()
    3 redis_sub = obj.subscribe()  # 进入准备接收状态
    4 while True:
    5     msg = redis_sub.parse_response()  # 这里再次调用parse_response进入接收状态
    6     print(msg)
    View Code

    发布:

    1 from redis_helper import RedisHelper
    2 obj = RedisHelper()
    3 obj.public('hello')  # 发送消息hello
    View Code
  • 相关阅读:
    第十七节:织梦做自定义表单在线预约的方法
    ExecuteNonQuery()返回值
    WCF服务编程读书笔记(6):错误
    ubuntu 工作区切换快捷键设置
    a pubhub service
    淘宝提供了Rubygems的国内镜像站点 ruby rails源
    新rails安装过程记录
    XMLRPC HOWTO
    XMLRPC HOWTO
    metaweblog api相关
  • 原文地址:https://www.cnblogs.com/zy6103/p/7084071.html
Copyright © 2020-2023  润新知