redis队列 Redis存储/取尽值,获取最新值
2022/9/8 2:24:30
本文主要是介绍redis队列 Redis存储/取尽值,获取最新值,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/** * 取尽存储的值,获取最新值 * * @param key * @return */ @Override public String popData(String key) { List<String> list = new ArrayList<>(); String popDataKey = RedisKeyPrefix.getPopDataKey(key); // 同步锁 boolean lockStatus = redisTemplate.opsForValue().setIfAbsent(popDataKey, 1, 5, TimeUnit.SECONDS); if (!lockStatus) { return null; } while (redisTemplate.hasKey(key)) { Object data = redisTemplate.opsForList().leftPop(key); if (data != null) { list.add(data.toString()); } } redisTemplate.delete(popDataKey); if (CollectionUtils.isEmpty(list)) { return null; } return list.get(list.size() - 1); }
// 存储值 public void pushData(String key, String value) { redisTemplate.opsForList().rightPush(key, value); }
// 取尽存储的值 public List<String> popAllData(String key) { List<String> list = new ArrayList<>(); while (redisTemplate.hasKey(key)) { Object data = redisTemplate.opsForList().leftPop(key); if (data != null) { list.add(data.toString()); } } return list; }
// CURD /** * 新增或更新 * * @param key * @param value */ public void setOrUpdateData(String key, String value) { redisTemplate.opsForValue().set(key, value); } /** * 获取值 * * @param key * @return */ public String getData(String key) { return (String) redisTemplate.opsForValue().get(key); } /** * 批量删除 * * @param key 前缀 */ public void deleteData(String key) { redisTemplate.delete(redisTemplate.keys(key + "*")); }
这篇关于redis队列 Redis存储/取尽值,获取最新值的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-30阿里云Redis教程:新手入门指南
- 2024-12-27阿里云Redis学习入门指南
- 2024-12-27阿里云Redis入门详解:轻松搭建与管理
- 2024-12-27阿里云Redis学习:新手入门指南
- 2024-12-24Redis资料:新手入门快速指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程