news 2026/5/1 7:34:58

redis 使用Pipelined 管道命令批量操作 减少网络操作次数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
redis 使用Pipelined 管道命令批量操作 减少网络操作次数

用Pipelined 管道命令批量查询 / 更新 redis里1000个key, 每个key value设置独立的过期时间都是30分钟

// 批量获取Redis键值 List<String> appMetricKeys = metricDataList.stream().map(metricData -> metricData.getSourceMetricName() + StrPool.COLON + metricData.getSourceMetricId()).collect(Collectors.toList()); // 使用管道批量查询 List<Object> redisValues = redisTemplate.executePipelined((RedisCallback<Object>)connection -> { for (String key : appMetricKeys) { connection.get(redisTemplate.getKeySerializer().serialize(key)); } return null; }); // 处理需要发送的数据 List<MetricData> needSendData = new ArrayList<>(); for (int i = 0; i < metricDataList.size(); i++) { MetricData metricData = metricDataList.get(i); String redisValue = redisValues.get(i) != null ? redisValues.get(i).toString() : null; if (redisValue == null || !ObjectUtil.equals(metricData.getSourceMetricData(), redisValue)) { needSendData.add(metricData); } } // 批量更新Redis if (CollUtil.isNotEmpty(needSendData)) { redisTemplate.executePipelined((RedisCallback<Object>)connection -> { for (MetricData metricData : needSendData) { String key = TINGYUN_ACTION_REDIS_KEY + metricData.getSourceMetricName() + StrPool.COLON + metricData.getSourceMetricId(); Object value = metricData.getSourceMetricData(); connection.setEx(redisTemplate.getKeySerializer().serialize(key), 30 * 60, redisTemplate.getValueSerializer().serialize(value)); // 30分钟 } return null; }); // 批量发送Kafka needSendData.forEach(metricData -> { kafkaTemplate.send(Constant.METRIC_DATA_TOPIC, JSON.toJSONString(metricData)); }); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:26:52

Linux下Miniconda环境切换导致PyTorch报错的处理

Linux下Miniconda环境切换导致PyTorch报错的处理 在远程服务器或云平台上跑深度学习实验时&#xff0c;你是否遇到过这样的尴尬场景&#xff1a;明明昨天还能正常训练模型&#xff0c;今天一登录却发现 import torch 直接抛出 ModuleNotFoundError&#xff1f;或者更诡异的是&a…

作者头像 李华
网站建设 2026/5/1 6:28:21

Miniconda更新conda自身命令及注意事项

Miniconda 更新 conda 自身的正确姿势与实战建议 在数据科学、AI 模型开发和现代软件工程中&#xff0c;Python 环境管理早已不再是“装个包就行”的简单操作。随着项目依赖日益复杂&#xff0c;不同框架对 Python 版本、CUDA 驱动、编译器工具链的要求千差万别&#xff0c;环境…

作者头像 李华
网站建设 2026/5/1 7:33:44

元宇宙的落地形式靠谱的有哪些?

近年来&#xff0c;“元宇宙”已成为科技与商业领域的热门话题。然而&#xff0c;抛开宏大的概念与未来的畅想&#xff0c;许多务实的企业与个人更关心的是&#xff1a;元宇宙目前有哪些看得见、摸得着、真正产生价值的落地形式&#xff1f;它不再仅仅是游戏或科幻电影的专属&a…

作者头像 李华
网站建设 2026/4/28 1:05:21

Miniconda-Python3.10镜像使用指南:轻松实现PyTorch GPU加速

Miniconda-Python3.10镜像使用指南&#xff1a;轻松实现PyTorch GPU加速 在人工智能项目开发中&#xff0c;最让人头疼的往往不是模型设计本身&#xff0c;而是环境配置——明明本地跑得好好的代码&#xff0c;换一台机器就报错“CUDA not available”&#xff0c;或是因为某个…

作者头像 李华
网站建设 2026/5/1 7:34:11

基于Vue的宠物医院排号系统的设计与实现r5zy1(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表 系统功能 用户,医生,出诊医生,预约挂号,诊疗信息,宠物信息,预约取消 开题报告内容 基于Vue的宠物医院排号系统的设计与实现开题报告 一、 选题背景、研究目的及意义 1. 选题背景 随着我国宠物经济的快速发展和"伴侣动物"家庭地位的提升&#x…

作者头像 李华
网站建设 2026/4/20 22:28:02

Markdown+Jupyter:用Miniconda-Python3.10生成高质量技术文档

MarkdownJupyter&#xff1a;用Miniconda-Python3.10生成高质量技术文档 在数据科学和AI项目中&#xff0c;你有没有遇到过这样的尴尬&#xff1f;同事发来一份PDF分析报告&#xff0c;图表精美、结论清晰——但当你想复现结果时&#xff0c;却发现代码早已丢失&#xff0c;依赖…

作者头像 李华