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

《Redis应用实例》Java实现(27):定长队列和淘汰队列

定长队列和淘汰队列都是固定长度的队列。
不同之处是定长队列超过定长后后面的元素不添加了,而淘汰队列超过定长后面添加的元素添加后最前面的元素会删掉。

package com.foxbill.redisinaction;import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;
import java.util.List;/*** 定长队列和淘汰队列*/
public class Chapter27 {static private String KEY_QUEUE = "Chapter27:fixedlenqueue";static private int MAX_QUEUE_SIZE = 10;static public void start(Jedis jedis) {cleanData(jedis);testFixedLen(jedis);cleanData(jedis);testEliminate(jedis);}//清除测试数据private static void cleanData(Jedis jedis) {jedis.del(KEY_QUEUE);}//测试定长队列private static void testFixedLen(Jedis jedis) {for (int i = 0; i <12; i++) {addFixedLen(jedis,"item:"+String.valueOf(i));}//打印队列List<String> list = jedis.lrange(KEY_QUEUE, 0, -1);String result = String.join(",", list);// 输出结果System.out.println(result);}//测试淘汰队列private static void testEliminate(Jedis jedis) {for (int i = 0; i <12; i++) {addEliminate(jedis,"item:"+String.valueOf(i));}//打印队列List<String> list = jedis.lrange(KEY_QUEUE, 0, -1);String result = String.join(",", list);// 输出结果System.out.println(result);}//定长队列添加元素private static void addFixedLen(Jedis jedis,String item) {Pipeline pipelined = jedis.pipelined();//先添加,后截断pipelined.rpush(KEY_QUEUE, item);//保留最旧的MAX_QUEUE_SIZE个元素pipelined.ltrim(KEY_QUEUE, 0, MAX_QUEUE_SIZE-1);pipelined.syncAndReturnAll();}//淘汰队列添加元素private static void addEliminate(Jedis jedis,String item) {Pipeline pipelined = jedis.pipelined();//先添加,后截断pipelined.rpush(KEY_QUEUE, item);//保留最新的MAX_QUEUE_SIZE个元素pipelined.ltrim(KEY_QUEUE, 0-MAX_QUEUE_SIZE, -1);pipelined.syncAndReturnAll();}}

http://www.dtcms.com/a/589697.html

相关文章:

  • 做网站服务器怎么用怎样创建行业门户网站
  • net core开发跨平台的桌面应用,如上位机很实用
  • python+playwright:如何解决某个页面不稳定的出现不影响ui自动化执行
  • Redis 使用场景
  • 针对动态连接场景的验证环境搭建思路
  • 网页制作与网站建设答案专业建设汇报ppt
  • 机器学习21:可解释机器学习(Explainable Machine Learning)(上)
  • 深圳开发网站建设哪家好软件仓库
  • 潍坊网站建设团队微信开放平台小程序
  • Vue 项目实战《尚医通》,根据等级和地区获取医院信息,笔记14
  • C语言关键字详解
  • SmartResume简历信息抽取框架深度解析
  • 2.4 使用 PyTorch / TensorFlow 实现文本分类
  • 传统企业网站建设运营分析闵行区个人网页设计用户体验
  • 从随机变量到统计模型(二)
  • AIGC|北京AI优化企业新榜单与选择指南
  • 站长工具怎么用北京建网站 优帮云
  • files-to-prompt 简介
  • 计算机软件开发网站建设取什么名字营销型外贸网站定制
  • 实战:搭建一个简单的股票价格监控和警报系统
  • 在 Unreal VR 项目中用双目立体全景天空盒优化性能与沉浸感
  • 专业网站推广引流电子商务网站建设与实例
  • 个人免费网站申请关键词挖掘查询工具
  • 学习周报二十一
  • 公司网站建设劳伦网店代运营收费
  • 云南 旅游 网站建设山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗
  • 触摸未来2025-11-09:万有力,图论革命
  • 做物流哪个网站推广效果好外贸网站的推广技巧有哪些
  • 舞钢市城市建设局网站模板王字体网
  • C++14常用新特性