出现这种问题一般都是代码太耗时了。
1、如较长时间的Thread.sleep的操作。
2、方法出现了重复调用等错误操作。
排查
果不其然,发现我的代码如下:
@ResponseBody
@RequestMapping("/list")
public List<String> list(){
List<String> redis_list = getList();
return redis_list;
}
public List<String> getList(){
ListOperations<String, String> listOperations = stringRedisTemplate.opsForList();
List<String> redis_list = listOperations.range("redis_list", 0, -1);
Stream.of(getList()).forEach(key-> System.out.println(key));
return redis_list;
}
看到问题在哪里了么,Stream.of这里getList()方法又调用getList()方法了。
这简直就是无限循环。
把 Stream.of(getList())
替换为 Stream.of(redis_list)
即可。