python 实现redis订阅发布功能
生活随笔
收集整理的這篇文章主要介紹了
python 实现redis订阅发布功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。也能實現訂閱發布系統,我們來看看怎樣用redis和python結合起來進行訂閱發布的,
import redis class RedisSubscri():def __init__(self,host):self.coon=redis.Redis(host="127.0.0.1")def publish(self,message,channel):#發布self.coon.publish(channel,message)def subscribe(self,channel):#訂閱pub=self.coon.pubsub()pub.subscribe(channel)pub.parse_response()return pubdef unsubsceribe(self,channel):#取消訂閱self.coon.pubsub().unsubscribe(channel)核心的代碼就是上面的 簡單封裝后就可以使用。
發布端
redisd=RedisSubscri(host='127.0.0.1') while True: n=input("請輸入你要發布的頻道:") m=input("請輸入你要發布的消息:") redisd.publish(m,n)訂閱端
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' from dingyue import RedisSubscri if __name__=="__main__":resad = RedisSubscri(host='127.0.0.1')meaaag = resad.subscribe('1')while True:print('監聽開始')meaaage=meaaag.parse_response()print(meaaage[2].decode('utf-8'))if meaaage[2].decode('utf-8')=='1':m=meaaag.unsubscribe('fm9.01')print(m)print('取消訂閱成功')break那么我們來運行下,上述的代碼,看是否能夠實現登錄訂閱功能,并且實現退訂功能。
發布端:
訂閱端
我們在上面的代碼中定義了,當接受消息為1的時候,我們就取消訂閱,
取消訂閱后就無法訂閱系統的消息了,所以輸出來是None。
這樣就利用python 和redis實現了訂閱發布的功能,其實在很多地方都可以用到redis的,深入研究在后續的文章中會介紹。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python 实现redis订阅发布功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python list的一个面试题
- 下一篇: python装饰器实现对异常代码出现进行