当使用docker运行项目时,

使用127.0.0.1:6379的本地默认环回地址连接redis时总会出现连接失败的问题,

如何修复以上问题?

(本文默认您拥有基本ubuntu服务器操作技巧,以及docker项目和redis服务器已正常安装。)

ubuntu

第一步:编辑redis配置文件允许外网连接。

sudo nano /etc/redis/redis.conf                             #开启redis的配置文件。

找到以下代码并修改,

bind 127.0.0.1 ::1  ——>  #bind 127.0.0.1 ::1                                  #允许所有ip可以连接

protected-mode yes ——> protected-mode no                              #内网保护模式关闭

#requirepass foobared  ——>  requirepass yourpassword          #设置redis连接密码

保存文件

sudo systemctl restart redis-server                                                   #重启redis服务器使配置生效

第二步:连接redis服务器

sudo apt install net-tools                                                                     #安装ip工具查看服务器绑定的专有内网地址

ifconfig

找到eth0 的inet 背后以10开头的内网专用ip地址

环回ip地址示例

环回ip地址示例

 

 

记下这个ip地址,

然后进入你的docker 项目内填写redis配置的地方把127.0.0.1的环回地址改为10开头的内网专用ip地址

再把密码填写好,即可正确连接redis服务器。

redis

redis

总结

为什么直接连接127.0.0.1:6379无法连接到redis服务器?

因为在docker内部使用127.0.0.1作为环回地址时,其实使用的不是服务器自身的127.0.0.1的环回地址,而是使用的docker内部自己的环回地址,导致连接失败。

为什么要使用redis服务器?

redis内存缓存主要用于数据库不在本地时对数据进行缓冲的作用,比如说我的博客是基于云Mysql数据库的,需要启用redis作为内存缓存,降低访问延时。