~~
Redis是使用的连接池的配置, 不应该有连接资源获取不到的情况, 不合理!!..., 问题一定是它了,
Redis连接池中的连接耗尽, 所有线程等待连接资源释放, 导致假死....set命令, 只能通过下面两个方法配合使用,
缺陷就是非原子的, 在执行expire()之前如果宕机了, 数据不能正确删除, 造成数据混乱.
redisTemplate.opsForValue().setIfAbsent...也只使用单点模式, 池资源相关问题很难被发现;
3.这段代码在多次重复调用后才会出现资源耗尽问题, 也很难发现问题;
4.涉及到的方法并不是主要逻辑范围, 代码review也容易忽略掉;
确实难发现啊....总结下:
1.在遇到使用连接资源的时候一定要和释放资源成对出现, 养成良好的编程习惯;
2.遇到问题, 不要慌, 尽量多的收集信息, 抽丝剥茧, 分析出有用的信息;
3.平时多做积累, 遇到问题可以从多个方面着手