news 2026/6/11 0:42:40

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/6/7 16:44:04

生成型消费与体验型消费:未来各行各业发展展望

当AI如同阳光、空气般无处不在&#xff0c;消费不再是简单的购买行为&#xff0c;而是一场与机器共舞的创造之旅清晨&#xff0c;你对着智能音箱说出一个模糊的创意&#xff1a;“想要一款带有东方美学元素的家居装饰”。几分钟后&#xff0c;AI生成了十种设计方案供你选择。确…

作者头像 李华
网站建设 2026/5/30 4:26:46

Linux下Miniconda权限问题导致PyTorch安装失败的修复

Linux下Miniconda权限问题导致PyTorch安装失败的修复 在搭建AI开发环境时&#xff0c;你是否遇到过这样的场景&#xff1a;满怀期待地运行 conda install pytorch&#xff0c;结果终端却弹出一串红色错误&#xff1a; CondaError: Permission denied: /opt/miniconda3/pkgs或者…

作者头像 李华
网站建设 2026/6/10 19:55:29

Markdown生成技术文档:Miniconda环境信息一键导出

Miniconda环境信息一键导出&#xff1a;构建可复现的Python开发体系 在数据科学和人工智能项目中&#xff0c;你是否经历过这样的场景&#xff1f;——本地训练好的模型&#xff0c;换一台机器就跑不起来&#xff1b;团队成员各自安装依赖&#xff0c;结果“在我电脑上明明没问…

作者头像 李华
网站建设 2026/6/6 10:23:45

Miniconda-Python3.10镜像发布:轻量级AI开发环境一键部署

Miniconda-Python3.10镜像发布&#xff1a;轻量级AI开发环境一键部署 在高校实验室的深夜&#xff0c;研究生小李正为跑不通师兄留下的代码而焦头烂额——“明明装了同样的库&#xff0c;为什么我的环境报错&#xff1f;”这几乎是每个AI开发者都经历过的噩梦。随着项目增多&am…

作者头像 李华
网站建设 2026/6/10 17:43:16

Docker Run命令实战:运行Miniconda-Python3.10镜像进行大模型训练

Docker Run命令实战&#xff1a;运行Miniconda-Python3.10镜像进行大模型训练 在如今的大模型时代&#xff0c;一个常见的场景是&#xff1a;团队中某位成员在本地成功复现了某个LLM微调实验&#xff0c;信心满满地将代码推送到仓库。结果其他人拉下来一跑——“ImportError: c…

作者头像 李华
网站建设 2026/6/10 11:58:48

图片、文档转PDF总变形?掌握这三招,告别格式错乱的烦恼

你是否遇到过这样的窘境&#xff1a;精心排版的Word文档或一份重要的图片合同&#xff0c;发送给别人后&#xff0c;对方一打开&#xff0c;格式全乱了套&#xff1f;或者&#xff0c;你想将多张图片汇总成一个文件&#xff0c;却苦于无法保证顺序和清晰度&#xff1f;这时&…

作者头像 李华