news 2026/4/23 17:07:43

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/4/23 14:42:13

Conda创建虚拟环境命令大全:专为AI开发者定制

Conda创建虚拟环境命令大全&#xff1a;专为AI开发者定制 在现代AI开发中&#xff0c;你有没有遇到过这样的场景&#xff1f;刚跑通一个PyTorch项目&#xff0c;准备切换到另一个TensorFlow实验时&#xff0c;突然所有依赖都报错——版本冲突、模块缺失、CUDA不兼容……这种“昨…

作者头像 李华
网站建设 2026/4/23 14:07:43

Miniconda中python -m pip install的作用域解析

Miniconda中python -m pip install的作用域解析 在现代 Python 开发中&#xff0c;尤其是人工智能、数据科学和机器学习项目里&#xff0c;一个看似简单的命令——python -m pip install&#xff0c;往往决定着整个项目的成败。你有没有遇到过这样的情况&#xff1a;明明已经 p…

作者头像 李华
网站建设 2026/4/23 11:29:29

清华镜像加速下载:Miniconda+PyTorch安装全流程详解

清华镜像加速下载&#xff1a;MinicondaPyTorch安装全流程详解 在高校实验室、AI 创业团队或个人开发者搭建深度学习环境时&#xff0c;最令人头疼的往往不是写模型&#xff0c;而是——环境装不上。尤其是 PyTorch 这种动辄几百 MB 的框架&#xff0c;用默认源安装常常卡在 3…

作者头像 李华
网站建设 2026/4/23 16:06:23

PyTorch GPU版本安装步骤详解(附完整命令行脚本)

PyTorch GPU环境搭建实战&#xff1a;从零开始的高效部署方案 在深度学习项目中&#xff0c;一个稳定、高效的开发环境是成功的第一步。然而&#xff0c;许多开发者都曾经历过这样的场景&#xff1a;花费数小时安装PyTorch后&#xff0c;torch.cuda.is_available()却依然返回Fa…

作者头像 李华
网站建设 2026/4/23 12:49:13

HTML嵌入PyTorch训练图表:Miniconda数据可视化实践

HTML嵌入PyTorch训练图表&#xff1a;Miniconda数据可视化实践 在深度学习项目中&#xff0c;模型跑完之后最让人焦虑的不是结果好坏&#xff0c;而是“它到底经历了什么&#xff1f;”——损失曲线是稳步下降&#xff0c;还是反复横跳&#xff1f;准确率是在持续提升&#xff…

作者头像 李华
网站建设 2026/4/23 14:27:58

Linux下PyTorch安装全流程:结合Miniconda与CUDA安装详解

Linux下PyTorch安装全流程&#xff1a;结合Miniconda与CUDA安装详解 在深度学习项目开发中&#xff0c;一个常见的场景是&#xff1a;你刚刚拿到一台新的Linux服务器&#xff0c;准备开始训练模型&#xff0c;结果运行import torch时发现CUDA不可用&#xff1b;或者好不容易装…

作者头像 李华