SpringBoot redis操作极慢

redis版本3.2(windows),SpringBoot版本2.3.1.RELEASE,就一个启动类:

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {
    @Autowired
    private StringRedisTemplate redisTemplate;

    public static void main(String[] args) {
        new SpringApplicationBuilder(DemoApplication.class)
                .web(WebApplicationType.NONE)
                .run(args);
    }

    @Override
    public void run(String... args) {
        Instant start = Instant.now();

        for (int i = 0; i < 1; i++) {
            redisTemplate.opsForValue().set("test", String.valueOf(i), 1);
        }

        System.out.println(ChronoUnit.MILLIS.between(start, Instant.now()));
    }
}

redis配置文件:

spring:
  redis:
    host: localhost
    port: 6379

pom就1个依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

这个redis操作的耗时在1.5-1.7秒之间,但是在redis-cli里手动输命令就很快,这是什么问题啊?
而且最奇葩的是有一个旧项目没问题,但是新创建的项目全都有这个问题,有没有好心人帮帮忙,快绝望了

阅读 6k
2 个回答

不要相信第一次的执行时间,看之后的,

看看TCPDUMP,感觉是首次调用需要建立链接,这个过程耗时。
后面链接复用自然就快了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题