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):#發布
def subscribe(self,channel):#訂閱
pub.subscribe(channel)
pub.parse_response()
return pub
def unsubsceribe(self,channel):#取消訂閱
核心的代碼就是上面的 簡單封裝後就可以使用。
發布端redisd=RedisSubscri(host="127.0.0.1")
whileTrue: n=input("請輸入你要發布的頻道:") m=input("請輸入你要發布的消息:") redisd.publish(m,n)
訂閱端
fromdingyueimportRedisSubscri
if__name__=="__main__": resad= RedisSubscri(host="127.0.0.1") meaaag= resad.subscribe("1")
whileTrue:
print("監聽開始") meaaage=meaaag.parse_response()
print(meaaage[2].decode("utf-8"))
ifmeaaage[2].decode("utf-8")=="1": m=meaaag.unsubscribe("fm9.01")
print(m)
print("取消訂閱成功")
break
·
那麼我們來運行下,上述的代碼,看是否能夠實現登錄訂閱功能,並且實現退訂功能。
發布端:
訂閱端
我們在上面的代碼中定義了,當接受消息為1的時候,我們就取消訂閱,
取消訂閱後就無法訂閱系統的消息了,所以輸出來是None。
這樣就利用python 和redis實現了訂閱發布的功能
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
TAG:雷子說測試 |