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

主站蜘蛛池模板: 国产精品美女网站| 激情综合网激情综合| 欧美色综合久久| 亚洲制服中文字幕一区二区| 国产成人你懂的在线观看| 在线观看免费AV网| 国产精品免费p区| 中文字幕 91| 在线免费亚洲无码视频| 91啦中文字幕| 国产白丝av| 国产精品无码AⅤ在线观看播放| 福利在线不卡一区| 精品国产香蕉在线播出| 欧美国产在线看| 55夜色66夜色国产精品视频| 亚洲国产中文综合专区在| 91久久国产热精品免费| 五月婷婷丁香色| 黄网站欧美内射| 国产福利不卡视频| 六月婷婷精品视频在线观看 | 欧美a在线视频| 国产精品第一区| 一级看片免费视频| 日本高清在线看免费观看| 四虎成人在线视频| 在线精品欧美日韩| 老色鬼欧美精品| 重口调教一区二区视频| 国产精品一区二区久久精品无码| 国产乱论视频| 99ri国产在线| yjizz视频最新网站在线| 少妇极品熟妇人妻专区视频| 狠狠色噜噜狠狠狠狠色综合久| 制服无码网站| 在线看国产精品| 91亚瑟视频| 乱色熟女综合一区二区| 成人国产精品一级毛片天堂| 天堂久久久久久中文字幕| 强乱中文字幕在线播放不卡| 中文字幕 91| 欧美国产日本高清不卡| 97无码免费人妻超级碰碰碰| 99999久久久久久亚洲| 亚洲美女一级毛片| 国产极品嫩模在线观看91| 中文一区二区视频| 一本大道无码高清| 亚洲色婷婷一区二区| 亚洲精品欧美日本中文字幕| 丝袜无码一区二区三区| 亚洲娇小与黑人巨大交| 国产亚洲美日韩AV中文字幕无码成人 | 亚洲无码91视频| 五月婷婷亚洲综合| 91视频国产高清| 青草精品视频| 四虎国产永久在线观看| 97国产精品视频自在拍| 亚洲一区二区三区国产精品| 无码一区二区波多野结衣播放搜索| 亚洲人妖在线| 久久免费视频播放| 一级毛片免费不卡在线视频| 1级黄色毛片| 国产国拍精品视频免费看| 久久久久夜色精品波多野结衣| yjizz视频最新网站在线| 激情影院内射美女| 一级高清毛片免费a级高清毛片| 亚州AV秘 一区二区三区| 日韩欧美中文在线| 毛片免费试看| 亚洲黄网在线| 国产一区二区丝袜高跟鞋| 欧美特黄一免在线观看| 成人精品免费视频| 精品久久人人爽人人玩人人妻| 亚洲欧美日韩视频一区|