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
原文地址:https://www.cnblogs.com/zy6103/p/7084071.html