一、shell终端进行事务的订阅与发布(异步)
发布 : publish channel message [root@localhost ~]# redis-cli -p 6379 -h 192.168.42.7 192.168.42.7:6379> publish test1 woaini (integer) 1 订阅 : subscribe channel 192.168.42.7:6379> select 9 切换到9数据库 OK 192.168.42.7:6379[9]> subscribe test1 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "test1" 3) (integer) 1 1) "message" 2) "test1" 3) "woaini"
二、python第三方执行事物的订阅与发布
pip install redis
# 从redis包中导入redis类 from redis import Redis # 初始化redis实例变量 xtredis = Redis(host='192.168.42.7',port=6379) 【字符串】 # 添加一个值进去,并且设置过期时间为60秒,如果不设置,则永远不会过期 # xtredis.set('username','xiaotuo',ex=60) # 获取一个值 # xtredis.get('username') # 删除一个值 # xtredis.delete('username') 【列表】 xtredis.lpush('names','haha','xixi','dudu','momo') xtredis.rpush('names','jam','hsiao','jamhsiao') xtredis.rpop('names') xtredis.lpop('names') xtredis.lindex('names',0)
关于集合与哈希表的使用就不再概述了,基本与上述方法类似,有兴趣的话自己去试。接下来说一下事务的订阅与发布,订阅与发布要在不同的py文件中
#发布 from redis import Redis xtredis = Redis(host='192.168.42.7', port=6379) while True: xtredis.publish('email', input("===>:")) # 订阅 ps = xtredis.pubsub() ps.subscribe('email') while True: for item in ps.listen(): ps.listen()是一个生成器 if item['type'] == 'message': data = item.get('data') print(data.decode('utf-8')) 解码