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

商城网站主要功能建设网站能挣钱吗

商城网站主要功能,建设网站能挣钱吗,网站推广策划包含哪些内容,做网站1万多块钱“如何实现Redis延时队列”这个面试题应该也是比较常见的#xff0c;解答如下#xff1a; 使用sortedset#xff08;有序集合#xff09; #xff0c;拿时间戳作为 score #xff0c;消息内容作为key 调用 zadd 来生产消息#xff0c;消费者用zrangebyscore 指令获取 N … “如何实现Redis延时队列”这个面试题应该也是比较常见的解答如下 使用sortedset有序集合 拿时间戳作为 score 消息内容作为key 调用 zadd 来生产消息消费者用zrangebyscore 指令获取 N 秒之前的数据轮询进行处理。 目录 实现思路引入Jedis指令简介zaddzremzrangeByScore Java实现Redis延时队列 实现思路 Java实现Redis延时队列首先要了解何为延时队列即可以将消息存储在队列中并在指定的延时时间后再将消息出队。这种队列在很多场景下都非常有用例如消息延时处理延时确认订单确认 等参考以上解答思路应该拆分 首先需要有个延时队列该队列是通过一定顺序当前时间戳延时时间排序的即优先取到延时时间已结束的数据然后消费者端就需要获取到队列中延时时间靠前结束的数据即当前时间戳延时时间靠前。 引入Jedis dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion3.7.0/version /dependency指令简介 zadd zadd命令用于将一个成员Score值加入到有序集合中。Score值可以是整数或者浮点数。如果有序集合中已经存在相同的成员那么旧成员将被替代。 语法ZADD key Score member [Score2 member2 …] 示例ZADD students 100 alice 或 ZADD students 80 alice 90 bob 添加单个或多个情况 zrem zrem命令用于从有序集合中移除一个或多个成员。该命令接收两个参数第一个参数是要操作的有序集合的键第二个参数是将要移除的成员的值。 语法ZREM key member [member …] 示例ZREM students alice zrangeByScore zrangeByScore命令用于获取分数在指定范围内的所有成员。 语法ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 参数说明 keyRedis中的键。 min最小分数。 max最大分数。 WITHSCORES可选参数如果设置为true则返回分数以及成员。 LIMIT可选参数用于限制返回的成员数量。 offset偏移量从第几个成员开始。 count限制返回的成员数量。 返回值 按照分数升序返回成员列表。 如果设置了LIMIT参数则返回限制数量的成员。 示例ZADD ZRANGEBYSCORE students 80 90 WITHSCORES Java实现Redis延时队列 核心部分消息队列工具类 import redis.clients.jedis.Jedis; import java.util.Set;public class DelayQueueWithRedis {private Jedis jedis;private String queueKey;public DelayQueueWithRedis(Jedis jedis, String queueKey) {this.jedis jedis;this.queueKey queueKey;}// 添加消息到延迟队列public void push(String message, long delaySeconds) {// 计算消息的分数这里使用消息进入队列的时间加上延迟时间long score System.currentTimeMillis() / 1000 delaySeconds;//向有序集合添加一个成员并设置其分数jedis.zadd(queueKey, score, message);}// 获取并消费一条消息public String pop() {while (true) {long now System.currentTimeMillis() / 1000;// 只获取分数在0到当前时间的元素SetString messages jedis.zrangeByScore(queueKey, 0, now, 0, 1);if (messages.isEmpty()) {System.out.println(No messages);// 没有可消费的消息休眠一会儿继续尝试try {Thread.sleep(500);} catch (InterruptedException e) {Thread.currentThread().interrupt();break;}} else {String message messages.iterator().next();// 从有序集合中移除一个成员jedis.zrem(queueKey, message);return message;}}return null;} }生产者端测试 import redis.clients.jedis.Jedis;/*** Author: zhangximing* Email: 530659058qq.com* Date: 2024/2/19 16:53* Description: 生产者端测试*/ public class MainP {public static void main(String[] args) {Jedis jedis new Jedis(localhost,6379);DelayQueueWithRedis delayQueue new DelayQueueWithRedis(jedis, delay_queue);// 添加延时消息delayQueue.push(message1, 5);delayQueue.push(message2, 10);delayQueue.push(message3, 8);}}消费者端测试 import redis.clients.jedis.Jedis;/*** Author: zhangximing* Email: 530659058qq.com* Date: 2024/2/19 16:51* Description: 消费者端测试*/ public class MainC {public static void main(String[] args) {Jedis jedis new Jedis(localhost,6379);DelayQueueWithRedis delayQueue new DelayQueueWithRedis(jedis, delay_queue);// 消费延时消息while (true) {String message delayQueue.pop();if (message ! null) {System.out.println(Consumed: message);}}} }测试结果数据在延时指定时间后才正常打印
http://www.zqtcl.cn/news/328378/

相关文章:

  • 卖衣服的网站建设素材网站免费短视频
  • 萍乡网站建设哪家公司好搜索引擎推广预算
  • 如何做网站不容易被攻击网站定位策划书
  • 自己做网站去哪买服务器多说wordpress
  • 网站排名突然没有了网站开发背景图
  • 比较容易做流量的网站设计模板素材网站
  • 电商网站建设 网站定制开发兰州展柜公司网站建设
  • 临沂城乡建设管理局网站腾讯体育
  • 一个空间怎么放两个网站ps个人网站首页怎么制作
  • 云南通耀建设工程有限公司网站国际购物网站平台有哪些
  • 网站建设外包服务上海网站建设公司怎么分辨好坏
  • 建筑类企业网站模板下载微信搜索推广
  • 上海网站备案在哪里wordpress短链接关键字
  • 金诚财富网站是谁做的建站技术博客
  • 黔东南网站设计公司儿童衣服刘涛做代言那个是什么网站
  • 网站首页样式百度推广是什么工作
  • 广告手机网站制作阿里云域名 设置网站
  • 杭州市拱墅区网站建设ui培训有用么
  • 广东手机网站建设多少钱邯郸市做网站的公司
  • seo网站优化推广怎么做龙岗中心医院
  • 建网站程序智能网站建设平台
  • 建筑公司分几级资质seo入门培训
  • wap类网站上海网站建设免费推
  • 网站建设哪家好公司建设银行网站怎么登陆不
  • 关于建设网站的需求wordpress不能发布文章
  • 如何一键建淘宝客网站中国建设银行金华分行网站
  • 给wordpress添加公告英语seo
  • 佛山市网站建设系统wap浏览器网页版
  • 关于小说网站的一些建设流程学做蛋糕有哪些网站
  • 益阳购物网站开发设计禹城网站制作