python 實現redis訂閱發布功能

2021-10-24 11:43:38 字數 1921 閱讀 6309

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)

defsubscribe

(self,channel)

:#訂閱

pub=self.coon.pubsub(

) pub.subscribe(channel)

pub.parse_response(

)return pub

defunsubsceribe

(self,channel)

:#取消訂閱

self.coon.pubsub(

).unsubscribe(channel)

核心的**就是上面的 簡單封裝後就可以使用。

發布端

redisd=redissubscri(host=

'127.0.0.1'

)while

true:n=

input

("請輸入你要發布的頻道:")m=

input

("請輸入你要發布的訊息:"

)redisd.publish(m,n)

訂閱端

'''

'''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的,深入研究在後續的文章中會介紹。

Java實現Redis發布訂閱

jedis使用指南 簡介 redis提供了基於 發布 訂閱 模式的訊息機制,此種模式下,訊息發布者和訂閱者不進行直接通訊,發布者客戶端向指定的頻道 channel 發布訊息,訂閱該頻道的每個客戶端都可以收到該訊息 頻道沒有 建立 的概念,可以直接訂閱 亦可直接發布訊息 下圖展示了頻道 channel...

php 實現redis 訂閱發布

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。這個可以理解為 我關注了你 你發了資訊我就可以立馬收的到 以下是我理解的幾個場景當然還有更多的場景 2.1 典型的網頁上的訊息可以做到實時通知 2.2 訂單下單以後 通過redis訂閱實時通...

Redis發布訂閱模式實現

redisutil工具類 public class redisutil 發布訊息 public static void publish string channel,string message 訂閱訊息 public static void subscribe jedispubsub jedisp...