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

网站建设行业怎么样桔子seo网

网站建设行业怎么样,桔子seo网,广州网站建设首选快优,wordpress自动发外链近期刷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://www.dtcms.com/wzjs/16234.html

相关文章:

  • 如何防止网站挂黑链推广网站多少钱
  • 山西网站建设推荐余姚网站制作公司
  • 西安建设网站的公司手机百度下载安装
  • 太原市今日新闻网站的seo
  • 津做网站百度关键词规划师
  • 长沙网站建设联系电话网站seo基本流程
  • 做网站企业的发展前景2023年第三波疫情9月
  • wordpress 4.9江苏搜索引擎优化
  • 手机网站可以做公众号今日头条十大新闻
  • 安徽全过程网站搭建案例快排seo
  • 丹东网站建设公司免费刷推广链接的网站
  • jianshe导航网站一手项目对接app平台
  • 做外单网站有哪些内容百度云官网首页
  • 重庆市建设工程造价管理协会网站百度收录提交网站后多久收录
  • 帝国cms做视频网站性能如何班级优化大师下载安装app
  • 泉州网站设计招聘网百度竞价排名推广
  • 网站上facebook怎么做链接中国法律服务网app最新下载
  • 怎么在备案号添加网站无锡网站建设方案优化
  • 哪里买到纯净网站模板网站优化方案怎么写
  • 谷歌海外广告投放推广广东百度seo关键词排名
  • wordpress如何更换域名嘉兴优化公司
  • 设计平台化seo内部优化包括哪些内容
  • 网站建设中敬请期待搜索引擎营销的简称
  • 百度搜索引擎录入网站网站优化课程
  • 邯郸网站建设选哪家好网站运营指标
  • 长沙手机网站建设百度模拟点击
  • 做网店哪个网站好seo网页优化培训
  • 海南平台网站建设平台免费设计模板网站
  • 做执法设备有哪些网站十大跨境电商erp排名
  • 网站制作产品资料百度seo刷排名软件