news 2026/5/30 10:54:57

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/19 23:17:53

SSH连接远程服务器运行PyTorch项目:完整操作流程解析

SSH连接远程服务器运行PyTorch项目&#xff1a;完整操作流程解析 在深度学习项目开发中&#xff0c;一个常见的场景是&#xff1a;你在本地写好了模型代码&#xff0c;准备训练时却发现显存不够、训练速度慢得像蜗牛。这时你意识到——该上服务器了。 但问题来了&#xff1a;怎…

作者头像 李华
网站建设 2026/5/20 21:30:55

还在熬夜凑文献综述?7款免费AI工具一键生成+真实文献交叉引用!

还在手动复制粘贴&#xff0c;拼凑那永远也凑不完的“国内外研究现状”&#xff1f;还在为参考文献的格式、交叉引用焦头烂额&#xff0c;被导师批注“引用不规范”、“文献堆砌”&#xff1f;别再这样折磨自己了&#xff01;你耗费无数个夜晚&#xff0c;用最原始、最低效的方…

作者头像 李华
网站建设 2026/5/25 4:32:24

PyTorch安装卡在依赖解析?试试Miniconda精准控制版本

PyTorch安装卡在依赖解析&#xff1f;试试Miniconda精准控制版本 在深度学习项目的起步阶段&#xff0c;你是否也经历过这样的场景&#xff1a;满怀期待地打开终端&#xff0c;输入一行 pip install torch&#xff0c;然后眼睁睁看着进度条卡在“Solving environment”几分钟甚…

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

CondaError: cannot remove current environment解决方案

CondaError: cannot remove current environment 解决方案 在现代数据科学与AI开发中&#xff0c;Python环境管理早已不是“能跑就行”的小事。一个项目依赖PyTorch 1.12&#xff0c;另一个需要TensorFlow 2.13&#xff1b;这边要用Python 3.8跑旧代码&#xff0c;那边又得上3.…

作者头像 李华
网站建设 2026/5/21 0:44:09

Miniconda虚拟环境中安装PyTorch后Jupyter无法识别的解决办法

Miniconda虚拟环境中安装PyTorch后Jupyter无法识别的解决办法 在搭建深度学习开发环境时&#xff0c;一个看似简单却频繁困扰开发者的问题是&#xff1a;我已经在 Conda 虚拟环境中用 conda install pytorch 成功安装了 PyTorch&#xff0c;命令行里也能正常导入 torch&#xf…

作者头像 李华
网站建设 2026/5/23 13:27:03

清华源同步延迟问题及Miniconda应对策略

清华源同步延迟问题及Miniconda应对策略 在人工智能实验室的一次常规部署中&#xff0c;一位研究生尝试复现一篇刚发布的论文代码。他按照文档执行 conda install pytorch torchvision --channel pytorch&#xff0c;却始终提示“package not found”。反复检查拼写无误后&…

作者头像 李华