news 2026/6/9 1:25:38

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/9 0:38:32

GitHub项目复现利器:Miniconda-Python3.10镜像一键部署PyTorch

GitHub项目复现利器&#xff1a;Miniconda-Python3.10镜像一键部署PyTorch 在复现一个GitHub上的AI项目时&#xff0c;你是否经历过这样的场景&#xff1f;克隆代码后执行pip install -r requirements.txt&#xff0c;结果报出一连串依赖冲突、版本不兼容、甚至因为CUDA驱动问…

作者头像 李华
网站建设 2026/6/9 1:41:57

2025 年云渲染平台哪个最好?深度解析选择关键维度

随着数字内容创作需求的爆发式增长&#xff0c;从影视特效、动画制作到建筑设计、实时交互应用&#xff0c;高质量的渲染输出已成为行业刚需。传统的本地渲染受限于硬件成本、算力瓶颈与时间压力&#xff0c;云渲染凭借其弹性伸缩、高效协同和成本优化的特性&#xff0c;正成为…

作者头像 李华
网站建设 2026/6/9 19:48:09

清华源支持的Miniconda平台架构(x86_64/aarch64)

清华源支持的Miniconda平台架构&#xff08;x86_64/aarch64&#xff09; 在人工智能实验室里&#xff0c;你是否经历过这样的场景&#xff1a;刚拿到一台基于鲲鹏或飞腾处理器的新服务器&#xff0c;满心期待地开始搭建深度学习环境&#xff0c;结果执行 conda create 时卡在下…

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

Conda环境管理进阶技巧:隔离PyTorch与TensorFlow依赖冲突

Conda环境管理进阶技巧&#xff1a;隔离PyTorch与TensorFlow依赖冲突 在现代AI开发中&#xff0c;一个看似简单的问题常常让工程师头疼不已&#xff1a;为什么昨天还能跑通的模型训练&#xff0c;今天突然报出cuDNN version mismatch&#xff1f;更离谱的是&#xff0c;明明只是…

作者头像 李华
网站建设 2026/6/8 19:23:50

第 2 章 企业级 Redis Cluster 集群部署与运维实战

文章目录 第2章 企业级Redis Cluster集群部署与运维实战 前言 目录 1. Redis集群企业级应用价值与架构选型 1.1 企业级Redis核心需求 1.2 集群架构选型对比 2. 集群架构设计与环境准备 2.1 集群拓扑设计(企业级最小规模) 2.2 环境准备 2.2.1 软硬件要求 2.2.2 依赖安装 2.2.3…

作者头像 李华
网站建设 2026/6/8 20:11:08

Miniconda中安装不同版本PyTorch进行性能对比测试

Miniconda中安装不同版本PyTorch进行性能对比测试 在深度学习研发过程中&#xff0c;一个看似简单的问题却常常困扰工程师和研究人员&#xff1a;“我该用哪个版本的 PyTorch&#xff1f;” 你可能遇到过这样的场景——项目A依赖torch1.13&#xff0c;而新模型需要torch>2.0…

作者头像 李华