无法连接服务器中的redis
redis无法从外部访问的问题解决,巨详细!
·
背景
目前在使用springboot,完成一个小项目,需要使用到redis。因为redis安装在阿里云的centOS7中,导致始终无法连接上redis。在经过若干问题排查后,终于能够从外部进行连接。接下来描述3种,无法在外部连接服务器中redis的解决方案。最后一个方案,才是解决本次问题的关键,各位一定要看看最后一种。
解决
方案一
放开6379端口,使得6379端口能够从外部访问
在阿里云控制台找到云服务器选项,按照图示步骤,进行配置
如果是虚拟机的话,直接关闭防火墙即可
查看防火墙的状态:
service iptables status 或者使用 iptables -L
systemctl stop firewalld.service #但是开机之后还会启动防火墙
systemctl disable firewalld.service #禁止firewall开机启动
但是服务器的话,不推荐直接管理防火墙
方案二
进到redis的安装目录,修改redis的配置文件,redis.conf
共需要修改4个地方
1、注释掉 bind 127.0.0.1 -::1
2、 将protected-mode 的值改为 no ,默认为 yes
3、为redis设置登录密码,默认requirepass是被注释的,需要打开注释,并设置密码
requirepass 你的密码
4、设置连接超时时间,默认值为0
然后重启redis服务器
方案三
这一步的内容,让我找了将近4个小时的问题。
因为我linux安装了宝塔面板,而且宝塔面板里面,还会对阿里云控制台的安全组里面设置的暴露规则进行拦截。例如,我安全组里面设置暴露端口6379,那么如果我没在宝塔面板里面打开6379端口,外部是依然无法访问6379这个端口的。这也是我为什么不能从外部连接服务器redis的原因。
设置步骤
问题解决!
其他
在springboot中,设置redis的连接超时时间。若超时时间过短,则会造成还未连接上,就超时了。
相关yml文件配置如下
spring:
#redis连接配置
redis:
# 超时时间
timeout: 10000
# 服务器地址
host: 你服务器地址
# 服务器端口
port: 6379
# 数据库
database: 0
# 密码
password: 有则填,没有的话可以直接空着,或者不添加该属性
lettuce:
pool:
#最大连接数,默认8
max-active: 1024
#最大连接阻塞等待时间,默认-1
max-wait: -1
#最大空闲连接
max-idle: 200
#最小空闲连接
min-idle: 5
更多推荐
已为社区贡献1条内容
所有评论(0)