- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于Java环境下的Redis发布订阅的设计与实现
?
?
玉绍康关世杰苏一博
摘??要:随着科学技术的发展,实时聊天系统、微博以及在一些读写分离的分布式架构等应用越来越多,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:///xinde123/p/8489054.html
科技创新导报2019年14期
科技创新导报的其它文章
环境工程中污水治理的现状及解决措施
专利视角下工业机器人领域的技术机会分析
青少年探究危险小天体预警防御小卫星设计
医院资产维护信息平台设计及应用研究
路径测绘一体化技术在电缆故障中的应用
新型科氏加速度演示仪的设计
?
-全文完-
您可能关注的文档
- 刍议电力输配电线路中的节能降耗技术要点.docx
- 产业转型与创新模式:日本川崎市的经验启示.docx
- 关于理实一体化教学模式的探究.docx
- 初中物理实验《探究阿基米德原理》的创新设计及其分析.docx
- 关于建筑施工企业强化收入及成本管理的研究.docx
- Intel奔腾G620-CPU技术规格.docx
- 互联网+背景下的高校大学生思想政治教育创新研究.docx
- 创新高校数学教育资源与构建社区文化协同发展的战略研究.docx
- 一章光学分析法引论.pptx
- 校园欺凌主题班会市公开课获奖课件省名师示范课获奖课件.pptx
- 高一有关春分的作文-高一数学辅导书.docx
- 《文章写作与修改》-局部的完善共18张省名师课赛课获奖课件市赛课一等奖课件.pptx
- 2024-2025学年云南省曲靖市英语小升初试题及答案指导.pdf
- 2024-2025学年浙江省绍兴市数学小升初试卷及解答参考.pdf
- 2025新高考方案一轮物理第六章动量动量守恒定律第1讲 动量定理.pdf
- 2025届江苏省无锡市天一中化学高一上期末达标检测模拟试题含解析.pdf
- 2025届江苏省苏州市相城区陆慕高级中等三校化学高三第一学期期中达标检测模拟试题含解析.pdf
- 2025新高考方案一轮物理第十四章热学第1讲 分子动理论内能.pdf
- 2025新高考方案一轮物理第九章磁场第1讲 磁场的描述磁场对电流的作用.pdf
- 2024-2025学年陕西省西安市英语小学四年级上学期试卷及解答参考.pdf
文档评论(0)