999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java環境下的Redis發布訂閱的設計與實現

2019-10-20 15:46:04玉紹康關世杰蘇一博
科技創新導報 2019年14期

玉紹康 關世杰 蘇一博

摘? ?要:隨著科學技術的發展,實時聊天系統、微博以及在一些讀寫分離的分布式架構等應用越來越多,Redis的發布訂閱便可以實現這些功能。針對Redis在分布式系統中作為數據通信中間件的問題,本文主要研究了Redis的發布訂閱功能。首先簡要介紹了Redis的發布訂閱功能和機制,然后在基于Java環境下實現了通過Redis的發布訂閱功能進行客戶機之間的數據通信。

關鍵詞:Redis? 數據通信中間件? 發布訂閱? Java

中圖分類號:TP311? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ?文章編號:1674-098X(2019)05(b)-0003-02

1? Redis的發布訂閱功能

Redis可以作為數據庫、緩存服務或消息服務使用,其中內存數據庫功能應用最為廣泛[1]。但Redis還有許多功能應用也很廣泛,例如Redis可作為一種數據通信中間件,即發布訂閱功能,應用于實時聊天系統、微博及分布式架構等。

在Redis客戶端鍵入SUBSCRIBE的時候,會建立一個客戶端與一個頻道的訂閱關系,并將所有的頻道和客戶端的訂閱關系都保存在一個叫puhsub_channels的字典中。這個字典的key是某個頻道,而values則是一個鏈表,記錄了所有訂閱這個頻道的客戶端[2]。利用Java實現Redis的發布訂閱功能可以更好地開發需要通信中間件的Java項目。

2? 使用Java實現Redis

Redis是一種緩存數據庫,屬于客戶端和服務端的結構。Java中通常使用 Jedis(客戶端)去操作Redis(服務端),首先兩者之間要建立連接,在Jedis中,采用 Jedis連接池(Jedispool)建立連接,隨時可以從池中取出連接使用[3]。在此基礎上,可設計實現Redis發布訂閱功能過程如圖1所示。

該過程可具體描述如下:

(1)先建立發布者Publisher類,通過頻道(mychannel)發布消息。

(2)由于訂閱操作機制是線程阻塞的,需要另外開啟一個線程(Subscribr類)來專門處理訂閱消息和處理接收消息。

(3)發布者和訂閱者都通過JedisPool中的getResource()方法從Jedis連接池中取出一個連接,連接Redis服務端。

(4)Jedis中的定義JedisPubSub抽象類可以為Redis提供訂閱和取消訂閱的功能。此時需要建立消息監聽類,這個消息監聽類需要繼承JedisPubSub類,并重寫它的三個方法。當收到消息時,會調用onMessage方法;當訂閱頻道時,會調用onSubscribe方法;當取消訂閱時,會調用onUnsubscribe方法。

3? 測試結果

用Java代碼設計通信測試類來啟動訂閱者線程和發布者線程。與此同時訂閱者會調用消息監聽類中onSubscribe方法實現訂閱頻道mychannel,訂閱結束訂閱線程阻塞,并監聽此頻道的消息。訂閱過程如圖2所示,可以看出訂閱頻道成功。

訂閱成功后,用鍵盤輸入要發布的消息,發布者線程中的Publisher接收輸入的消息后,將消息發布到mychannel中,此時訂閱mychannel的訂閱者會收到消息并打印,結果如圖3所示,可以看出發布端成功發布消息,訂閱端已經成功收到消息。

取消訂閱需要輸入quit命令時,即停止發布消息,同時訂閱者調用onUnsubscribe方法取消訂閱,結果如圖4所示,此時取消訂閱成功。

綜上所述,本文設計的在Java環境下基于Redis的發布訂閱功能有效。

4? 結語

Redis技術作為當今應用廣泛的技術之一,在各個領域的應用開發中有著不可替代的作用。本文主要研究了Redis的發布訂閱功能,在基于Java環境中實現了對頻道的訂閱、發布、監聽、接收功能,通過檢測實驗的結果成功訂閱頻道并接收到頻道中發布的消息。本文的研究和測試對分布式系統的通信以及信息交互具有重要的意義 。

參考文獻

[1] 王嫣如.Redis消息推送機制應用技術研究[J].科技廣場,2016(8):41-44.

[2] 黃健宏.Redis設計與實現[M].北京:機械工業出版社,2014.

[3] https://www.cnblogs.com/xinde123/p/8489054.html

主站蜘蛛池模板: 91精品视频在线播放| 久久午夜夜伦鲁鲁片无码免费| 午夜毛片免费观看视频 | 97在线观看视频免费| 国产在线观看成人91| 欧美黄色a| 国产极品美女在线播放| 亚洲日本中文字幕天堂网| 久久精品视频亚洲| 日韩一区精品视频一区二区| 亚洲日韩久久综合中文字幕| 91无码人妻精品一区二区蜜桃| 色九九视频| 91欧美亚洲国产五月天| 免费黄色国产视频| 四虎国产永久在线观看| 精品久久高清| 视频二区欧美| 99在线观看免费视频| 成人无码一区二区三区视频在线观看| 国产小视频在线高清播放| 久久亚洲AⅤ无码精品午夜麻豆| 成人免费一区二区三区| 日本在线欧美在线| 亚洲成人黄色在线观看| 在线视频97| 日韩色图在线观看| 夜夜操国产| 谁有在线观看日韩亚洲最新视频 | 日韩成人在线一区二区| 国产在线精彩视频二区| www.91中文字幕| 亚洲精选高清无码| 国产乱子伦视频三区| 亚洲av片在线免费观看| 国产精品手机在线观看你懂的| 亚洲天堂网在线播放| 五月婷婷导航| 国产在线一区二区视频| 成人国产精品网站在线看| 国产欧美日本在线观看| 一级毛片免费观看不卡视频| 亚洲一区二区约美女探花| 欧美一级特黄aaaaaa在线看片| 欧美日韩另类国产| 久久午夜夜伦鲁鲁片不卡| 2020国产免费久久精品99| 久久黄色影院| 无码粉嫩虎白一线天在线观看| 91福利国产成人精品导航| 特级欧美视频aaaaaa| 99久久这里只精品麻豆| 亚洲a级毛片| 亚洲日本中文综合在线| 日韩中文无码av超清| 国产精品蜜芽在线观看| 国产主播喷水| 欧美成一级| 国产成人精品日本亚洲| 熟女视频91| 久久久久国产一级毛片高清板| 成人在线观看一区| 亚洲综合18p| 中文字幕丝袜一区二区| 92午夜福利影院一区二区三区| 国产一区二区免费播放| 亚洲国产天堂在线观看| 高潮爽到爆的喷水女主播视频| 中国丰满人妻无码束缚啪啪| 亚洲免费三区| 欧美日韩专区| 亚洲精品中文字幕午夜| 亚洲侵犯无码网址在线观看| 91在线国内在线播放老师| 亚洲an第二区国产精品| 久久窝窝国产精品午夜看片| 日本在线国产| 蜜桃臀无码内射一区二区三区| 久草视频精品| 国产激情无码一区二区三区免费| 亚洲第一视频区| 国产无码高清视频不卡|