解决jedis异常JedisConnectionException:Could not get a resource from the pool

服务器上启动了redis之后,用jedis连接发现报错

 

异常的意思是获取不到jedis的连接池,网上查了下,可能是因为连接不上redis服务器导致的。

在stackoverflow上看到很多人说需要修改下redis配置文件, 配置文件里有一行bind 127.0.0.1,意思是只允许127.0.0.1(回环地址)访问redis服务,也就是不允许外界访问,为了允许外网访问,将127.0.0.1改成0.0.0.0,然后重启redis服务(具体可参考博客https://www.cnblogs.com/liusxg/p/5712493.html)。修改之后理论上外网可以访问了,但是一运行还是报同样的异常,说明还是不行。

然后猜测可能是到服务器的网络不通导致,于是在命令行里使用telnet命令去远程连接服务器的6379端口,发现不通,看来报错的大致原因找到了!! 

 

 服务器经过ping测试可以ping通,说明应该是6379端口被封了,那应该是防火墙的原因。(之前我只在阿里云后台控制台防火墙列表那里开放了6379端口,服务器操作系统上应该没有开放,因为阿里云的服务器貌似是有2层防火墙,一层需要在服务器上开,一层去阿里云控制台开放)。

然后用 firewall-cmd --zone=public --add-port=6379/tcp --permanent 开启端口,重启防火墙(firewall-cmd --reload ),

再次使用telnet就能通了。

(我的服务器系统是centOS7,其它系统开防火墙的命令可能不同。)

你可能感兴趣的:(linux,redis)