在node112(192.168.23.112,以下简称112)这台机器上安装redis完成之后,通过./redis-server redis.conf 启动,查看端口信息:
通过红框框住的部分可以看到,redis启动后绑定的ip是127.0.0.1,这里的意思就是说这台机器上的redis只能通过本机访问,要想在其他电脑通过./redis-cli来访问或者通过java程序来访问,是不允许的,比如我在另外一台机器node113(192.168.23.113,以下简称113)上访问:
[root@node113 /usr/local/redis/bin]#./redis-cli -h 192.168.23.112 Could not connect to Redis at 192.168.23.112:6379: Connection refused Could not connect to Redis at 192.168.23.112:6379: Connection refused not connected>
怎么解决客户端不能访问的问题?需要在想被别人访问的机器node112配置redis的bind选项,vi redis.conf,原先默认的是127.0.0.1,我们可以把其改为node112的ip地址就可以了:
修改之后重启redis,在node113上再使用./redis-cli -h 192.168.23.112连接发现已经可以了,但是注意这样配置之后通过./redis-cli -h 127.0.0.1就不能访问了:
[root@node113 /usr/local/redis/bin]#./redis-cli -h 192.168.23.112 192.168.23.112:6379> keys * (empty list or set) 192.168.23.112:6379>
总结:bind选项可以使用本机具体的ip,另外还有一种简单的通用写法,即
bind 0.0.0.0
也代表可以允许外部客户端访问的意思,不仅支持./redis-cli -h 192.168.23.112,也支持./redis-cli -h 127.0.0.1,但是因为安全可能造成root提权的原因,一般还是推荐写具体的本机ip地址。