1. 程式人生 > >緩存數據庫-redis(訂閱發布)

緩存數據庫-redis(訂閱發布)

之間 height obj 緩存 urn response span self 頻道

一:Redis 發布訂閱

Redis 發布訂閱(pub/sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接收消息。

Redis 客戶端可以訂閱任意數量的頻道。

下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client2 、 client5 和 client1 之間的關系:

技術分享

當有新消息通過 PUBLISH 命令發送給頻道 channel1 時, 這個消息就會被發送給訂閱它的三個客戶端:

技術分享

二:示例

# -*- coding:utf-8 -*-
__author__ = shisanjun
import redis

class RedisHelper(object):
    
def __init__(self): self.__conn=redis.Redis(host="192.168.0.121") self.chan_sub="fm104.5" self.chan_pub="fm104.5" def public(self,msg): self.__conn.publish(self.chan_pub,msg) return True def subscribe(self): pub=self.__conn.pubsub()#相當於打開收音機 pub.subscribe(self.chan_sub)#
調頻道 pub.parse_response()#準備接受,下次調用才開始接受 return pub

訂閱

# -*- coding:utf-8 -*-
__author__ = shisanjun

from redishelp import RedisHelper
obj=RedisHelper()
redis_sub=obj.subscribe()

while True:
    msg=redis_sub.parse_response()
    print(msg)

發布

# -*- coding:utf-8 -*-
__author__
= shisanjun from redishelp import RedisHelper obj=RedisHelper() obj.public("hello")

緩存數據庫-redis(訂閱發布)