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
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python学习之-- redis模块管道/订阅发布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅读《视觉SLAM十四讲:从理论到实践》
- 下一篇: 浅谈python的对象的三大特性之封装