redis.conf
Redis Version: 5.0.3
毫无疑问,看官方的配置文件的解读 .
bind 配置的是 redis server 网卡的地址 ,配置哪个网卡地址,你就可以通过哪个网卡地址访问redis ,而不是外部访问redis的ip 列表。
可以看到,我这个主机上有两个网卡,1个是回环地址 127.0.0.1 ,另外一个是 eno16777736对应的192.168.18.130 。
所以 bind 建议配置 : 127.0.0.1 192.168.18.130
验证bind
bind 127.0.0.1
假设我们使用默认的配置文件,即bind 127.0.0.1 .
启动redis后 , 在redis server本机上访问 redis server
[redis@artisan bin]$ ./redis-cli 127.0.0.1:6379> 127.0.0.1:6379> set artisanK artisanV OK 127.0.0.1:6379>
redis server 本机客户端 可以连接操作 。
我们尝试使用代码或者RedisDesktopManager访问下 192.168.18.130
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.18.130:6379] with root cause
外部通过 192.168.18.130 无法访问,因为你配置了bind 127.0.0.1 这个回环网卡地址,redis server 只接收这个网卡过来的连接。
bind 192.168.18.130
外部通过 192.168.18.130 可以访问,因为你配置了bind 192.168.18.130,redis server 只接收这个网卡过来的连接。
redis server 本机
停止redis 服务也要通过 -h 指定ip
那怎么访问呢? 通过 -h 指定ip
本机访问redis 居然不行。。。因为你配置了bind 192.168.18.130,redis server 只接收这个网卡过来的连接,没有配置 127.0.0.1 这个网络地址,redis server 自然不会接收这个回环地址发送过来的连接请求。
bind 192.168.18.130 127.0.0.1
[redis@artisan bin]$ ./redis-cli 127.0.0.1:6379> set artisanKey artisanValue OK 127.0.0.1:6379> get artisanKey "artisanValue" 127.0.0.1:6379> 127.0.0.1:6379>
外部通过 192.168.18.130 可以访问,本机通过127.0.0.1 可以访问。 因为你配置了bind 127.0.0.1 192.168.18.130,redis server 只接收192.168.18.130 27.0.0.1 这两个网卡过来的连接。