1、项目访问redis 出现 “Could not get a resource from the pool”。
2、一顿debug ,跟到底层提示配置问题,redis服务未设置密码,但是我配置了密码,导致失败。
3、去掉密码仍然出现问题。
4、free -g 查看服务器内存的时候,内存被占满了,并且服务器的sysctl.conf设置的 vm.overcommit_memory=0
这样设置的时候redis是在内存满的时候不会写入成功,然后改动配置。
5、继续使用项目redis工具的时候仍然存在问题,通过工具访问redis服务的时候未输入密码就能进去,推断应该是挂载失败了,然后搜了下挂载命令。
docker run -d --name redis -p 6379:6379 -v /usr/local/tool/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf docker.io/redis redis-server /usr/local/etc/redis/redis.conf
再次用项目启动访问redis成功了。
分析问题点:第一次挂载启动的时候容器内目录写错了,写的是/etc/redis.conf 导致未正确挂载。
另外出现问题的时候一定要把问题串成线,想想这个问题发生了,它的上一个点是什么,使用的redis是由jedispool注入进来的,项目初始化的时候注入成功了,但是使用的时候出问题了,所以要在加载jedispool的时候就debug看一下,跟下源码,帮助分析问题具体原因。