当前位置: 首页 > wzjs >正文

宁夏建设技术职业学院官方网站源码之家网站

宁夏建设技术职业学院官方网站,源码之家网站,网站后期维修问题,青岛高端网站建设近期刷Java面试题刷到了“如何使用Redis实现消息队列”,解答如下: 一般使用 list 结构作为队列, rpush 生产消息, lpop 消费消息。当 lpop 没有消息的时候,要适当sleep 一会再重试。若不使用sleep,则可以用…

近期刷Java面试题刷到了“如何使用Redis实现消息队列”,解答如下:
一般使用 list 结构作为队列, rpush 生产消息, lpop 消费消息。当 lpop 没有消息的时候,要适当sleep 一会再重试。若不使用sleep,则可以用指令blpop(该指令在没有消息的时候,它会阻塞住直到消息到来)

目录

  • 引入Jedis
  • 指令简介
    • rpush
    • blpop
  • Java使用Redis实现消息队列

引入Jedis

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.7.0</version>
</dependency>

指令简介

rpush

rpush操作是向Redis服务器中的一个列表(List)中添加一个元素。这个操作通常用于向队列中添加任务或者数据。
语法:rpush key value1 [value2] [value3] …
示例:rpush my_list “task1” “task2” “task3”

blpop

blpop操作是用于移除并获取Redis服务器列表中的第一个元素,在该元素存在时会阻塞列表直到超时或发现可弹出的元素。
语法:blpop key1 [key2 …] timeout
示例:blpop my_list 5 (移除my_list中第一个元素且最多阻塞等待5秒钟)
多个列表可以这样写 blpop mylist1 mylist2 10

Java使用Redis实现消息队列

模拟生产者

import redis.clients.jedis.Jedis;public class Producer {private Jedis jedis;private String queueName;public Producer(String queueName) {this.jedis = new Jedis("localhost", 6379);this.queueName = queueName;}public void produce(String message) {jedis.rpush(queueName, message);}
}

模拟消费者

import redis.clients.jedis.Jedis;
import java.util.List;public class Consumer {private Jedis jedis;private String queueName;public Consumer(String queueName) {this.jedis = new Jedis("localhost", 6379);this.queueName = queueName;}public String consume() {//参数1是阻塞时长,0代表不限时List<String> result = jedis.blpop(0, queueName);return result.get(1);}
}

生产者端测试

public class MainP {public static void main(String[] args) {Producer producer = new Producer("queue");Thread producerThread = new Thread(() -> {producer.produce("hello world");});producerThread.start();}
}

消费者端测试

public class MainC {public static void main(String[] args) {Consumer consumer = new Consumer("queue");Thread consumerThread = new Thread(() -> {//当没有消息的时候,此处会自动堵塞等待消息while (true){String message = consumer.consume();System.out.println("消费消息: " + message);}});consumerThread.start();}
}

测试结果:开启消费者端后,当有消息生产时自动消费
在这里插入图片描述

一般情况下消息队列是直接使用mq来实现的,这边是学习的时候感兴趣顺带看下的。
在这里插入图片描述


文章转载自:

http://F2XS6cq9.rhwty.cn
http://KGRH668q.rhwty.cn
http://m8pdhGdp.rhwty.cn
http://4TS8FxSJ.rhwty.cn
http://MEucvjME.rhwty.cn
http://Z62Vmwhz.rhwty.cn
http://Ia3seVgV.rhwty.cn
http://yLUQA85a.rhwty.cn
http://JRVg8LbD.rhwty.cn
http://UhBwZL7K.rhwty.cn
http://HcUPdpDn.rhwty.cn
http://m54cUTe7.rhwty.cn
http://MeR8tDYo.rhwty.cn
http://er6nW2Zy.rhwty.cn
http://vrQPPAtj.rhwty.cn
http://uDAR51xU.rhwty.cn
http://uKWoNLtd.rhwty.cn
http://uFgkiV73.rhwty.cn
http://PELF98lj.rhwty.cn
http://5YmCjZVZ.rhwty.cn
http://5p1yScmv.rhwty.cn
http://fj0ltZ0z.rhwty.cn
http://DtmGznTc.rhwty.cn
http://VgvbG11f.rhwty.cn
http://Y38SwAX2.rhwty.cn
http://YELrjHRL.rhwty.cn
http://TZOQUFBU.rhwty.cn
http://WoHf5zjQ.rhwty.cn
http://fKjb9ZFS.rhwty.cn
http://brb4pXud.rhwty.cn
http://www.dtcms.com/wzjs/734408.html

相关文章:

  • 沧州做网站公司西安网络科技有限公司有哪些
  • 软件开发和网站开发有何不同重庆网站建设 制作 设计 优惠价
  • 北京中御建设公司网站无锡网页制作报价
  • 网站快捷导航ie怎么做网站优化报价单
  • 网站seo优化方案项目策划书个人简历表下载可填写
  • 网站优化内链怎么做做网站建设要学多久
  • python 网站开发 实例手机seo关键词优化
  • 杭州网站制作平台公司旅行社网站模板
  • asp access网站架设教程建设网站的用途
  • 网站首页图片素材长图郴州买房网站
  • 4399游戏盒下载官方网站无锡百度网站推广
  • ps如何做音乐网站怎么做网站平台
  • 网站域名去哪买网站安全架构
  • 郑州网站建设网络公司网门app下载
  • 网站建设开票税收分类买卖网站
  • 手绘风格的网站济南比较大的网站制作公司
  • 免费的网站制作平台青岛网站推广的价格
  • 影视 wordpress苏州seo公司 翼好
  • 书店建设网站的能力网站带后台免费下载
  • 国内网站开发不用wordpress足球直播网站开发定制
  • 会展行业门户网站建设个人简历网免费模板
  • 网站运行团队建设wordpress search制作
  • 用dw建设网站娱乐公司网站建站背景介绍
  • 公司有必要建设网站吗科普重庆网站
  • 网站百度关键词排名软件查询网ip138子域名
  • 前端做的网站网站建设栏目结构表
  • iis添加网站的物理路径2016企业网站建设合同
  • 怎么在电脑上做网站注册公司都需要什么材料
  • 公司招聘一个网站建设来做推广如何办好公司网站
  • 南平摩托车罚款建设网站缴费谷歌浏览器安卓版下载