问题描述:
Windows 系统上 Java 程序连接 linux 上安装的 Redis 失败, 默认端口 6379 , 提示错误信息
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
可能原因
1. 连接IP地址, 端口号或密码错误
2. Redis 服务未启动:
检测1: 后台进程是否存在
ps -ef | grep redis
检测2: 6379 端口是否在监听
netstat -lntp | grep 6379
检测3: 使用 redis-cli 客户端检测连接是否正常
[root@root ~]# redis-5.0.4/src/redis-cli
127.0.0.1:6379> ping
PONG
3. 连接被防火墙拦截:
修改防火墙规则, 开放6379端口
[root@root ~]# /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEP
保存
[root@root ~]# /etc/rc.d/init.d/iptables save
重启防火墙
[root@root ~]# /etc/init.d/iptables restart
4. 检查配置文件 redis.conf 是否不允许外部访问
检测端口是否可以访问:
在 cmd 中运行 telnet 192.168.xxx.xxx 6379
若可访问则会进入Telnet客户端,若无法访问会给出连接失败提示,修改配置文件
[root@root ~]# vim redis-5.0.4/redis.conf
修改 protected-mode 属性为 no
redis.conf 中默认 bind 127.0.0.1 , 代表只有本机可以访问, bind 可加的是允许访问的 ip
也可以直接注释掉这一行,这样所有机器都可以访问。
保存配置文件,重启 Redis
以上仅供参考