Redis 管道技术
  l3iKMwY9XZmO 4天前 22 0

概述

Redis 是基于请求/响应协议的 TCP 服务。在客户端向服务器发送一个查询请求后,需要监听 Socket 的返回结果,该监听过程一直阻塞,直到服务器有结果返回。如果一次请求延迟20ms,则多次请求的网络延迟会不断累加。也就是说,Redis 的性能瓶颈主要体现在网络延迟上

Redis 的管道技术指在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。管道技术能减少客户端和服务器交互的次数,将客户端的请求批量发送给服务端,服务器针对批量请求分别查询并统一回复,显著提高 Redis 性能


代码实现

// Redis Pipeline 执行批量操作,将操作结果返回在 list 中
List<Object> list = redisTemplate.executePipelined(
  new RedisCallback<Object>() {
    @Nullable
    @Override
    public Object doInRedis (RedisConnection connection) throws DataAccessException {
      // 1:打开 Pipeline
      connection.openPipeline();
      // 2:执行批量操作
      for(int i = 0; i < 10000; i++) {
        String key = "key_" + i;
        String value = "value_" + i;
        connection.set(key.getBytes(), value.getBytes());
      }
      // 3:结果返回,这里返回 null,将最终结果汇总在外层的1ist中
      return null;
    }
  });
//5:查看管道批量操作返回的结果
for (Object item : list) {
  System.out.println(item);
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 4天前 0

暂无评论

推荐阅读
  YQSzfXzmOgFb   22天前   49   0   0 NoSQL
  l3iKMwY9XZmO   4天前   22   0   0 NoSQL
  59xYVWJCES1Q   2024年08月07日   55   0   0 NoSQL
  YQSzfXzmOgFb   12天前   37   0   0 NoSQL
  YQSzfXzmOgFb   12天前   28   0   0 NoSQL
  YQSzfXzmOgFb   12天前   40   0   0 NoSQL
  YQSzfXzmOgFb   19天前   154   0   0 NoSQL
  GAkqMsYut1eZ   2024年08月07日   58   0   0 NoSQL
  YQSzfXzmOgFb   21天前   62   0   0 NoSQL
l3iKMwY9XZmO
作者其他文章 更多