6
$ redis-cli -h ec2-75-101-204-XXX.compute-1.amazonaws.com
Could not connect to Redis at ec2-75-101-204-XXX.compute-1.amazonaws.com:6379: Operation timed out

这就是我从我的主机得到的。我将该机器上的安全组设置为对端口 6379 开放。

当我在 redis 服务器上运行 netstat 时,我看到它正在监听:

$ netstat -nlp
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -               
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -               
Active UNIX domain sockets (only servers)

我的redis.conf样子:

daemonize yes
pidfile /var/run/redis.pid
port 6379
timeout 300
loglevel notice
logfile /var/log/redis.log
databases 16

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes
rdbcompression yes

那么为什么我会从另一台机器超时呢?

4

1 回答 1

12

redis 仅在 localhost 端口上侦听:127.0.0.1:6379.

你需要配置 redis 来绑定0.0.0.0

在 redis.conf 中(最有可能在/etc/redis/redis.conf,替换(或添加,如果不存在)

bind 127.0.0.1

bind 0.0.0.0
于 2013-02-27T01:45:29.977 回答