今天发现在我的 Mac 上使用 J2Cache 时候,在连接 Redis 部分需要执行至少 5 秒以上。(J2Cache 默认使用的是 JedisPool 连接 Redis),然后我写了一个简单的代码用 Jedis 类直接连是很快的,说明 Redis 服务本身是没问题的。
然后 @三刀蜀黍 说,这是由于 InetAddress.getLocalHost() 方法执行很慢的原因,测试一下单独调用 InetAdress.getLocalHost() 果然需要超过 5 秒才会返回结果。
解决的办法是在机器的 hosts 文件里做机器名和 IP 地址的映射,如下:
127.0.0.1 localhost
127.0.0.1 winter-notebook.local
::1 localhost
::1 winter-notebook.local
果然再次运行只需要一百多毫秒。