Redis 管道技术

万有斥力  金牌会员 | 2024-9-15 14:06:51 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 822|帖子 822|积分 2466

概述

Redis 是基于哀求/响应协议的 TCP 服务。在客户端向服务器发送一个查询哀求后,需要监听 Socket 的返回结果,该监听过程不停壅闭,直到服务器有结果返回。假如一次哀求耽误20ms,则多次哀求的网络耽误会不断累加。也就是说,Redis 的性能瓶颈主要体现在网络耽误上
Redis 的管道技术指在服务端未响应时,客户端可以继续向服务端发送哀求,并最终一次性读取所有服务端的响应。管道技术能减少客户端和服务器交互的次数,将客户端的哀求批量发送给服务端,服务器针对批量哀求分别查询并同一复兴,显著提高 Redis 性能

代码实现
  1. // Redis Pipeline 执行批量操作,将操作结果返回在 list 中
  2. List<Object> list = redisTemplate.executePipelined(
  3.   new RedisCallback<Object>() {
  4.     @Nullable
  5.     @Override
  6.     public Object doInRedis (RedisConnection connection) throws DataAccessException {
  7.       // 1:打开 Pipeline
  8.       connection.openPipeline();
  9.       // 2:执行批量操作
  10.       for(int i = 0; i < 10000; i++) {
  11.         String key = "key_" + i;
  12.         String value = "value_" + i;
  13.         connection.set(key.getBytes(), value.getBytes());
  14.       }
  15.       // 3:结果返回,这里返回 null,将最终结果汇总在外层的1ist中
  16.       return null;
  17.     }
  18.   });
  19. //5:查看管道批量操作返回的结果
  20. for (Object item : list) {
  21.   System.out.println(item);
  22. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表