如何连接到远程 Redis 服务器?

Posted

技术标签:

【中文标题】如何连接到远程 Redis 服务器?【英文标题】:How to connect to remote Redis server? 【发布时间】:2017-04-02 09:50:19 【问题描述】:

我有远程 Redis 服务器的 URL 和端口。我可以从 Scala 写入 Redis。但是,我想通过终端使用redis-server 或类似的东西连接到远程Redis,以便多次调用hgetget 等(我可以使用本地安装的Redis 来完成,没有任何问题)。

【问题讨论】:

【参考方案1】:
redis-cli -h XXX.XXX.XXX.XXX -p YYYY

xxx.xxx.xxx.xxx 是 IP 地址,yyyy 是端口

我的开发环境中的示例

redis-cli -h 10.144.62.3 -p 30000

REDIS CLI COMMANDS

主机、端口、密码和数据库 默认情况下 redis-cli 连接到 服务器位于 127.0.0.1 端口 6379。您可以猜到,您可以轻松更改 这使用命令行选项。指定不同的主机名或 IP 地址,使用 -h。要设置不同的端口,请使用 -p。

redis-cli -h redis15.localnet.org -p 6390 ping

【讨论】:

上面写着Could not connect to Redis at -c:6379: Temporary failure in name resolution @duckertito-ABle 可以解决这个问题吗?我也面临同样的情况 如果不想单独输入主机和端口,也可以使用redis-cli -u redis://user:pass@host:port.. 主机有一个不断变化的 IP 地址(如果您没有网络访问权限,则没有)。我们建议您连接到特殊的 DNS 名称 host.docker.internal ,它解析为主机使用的内部 IP 地址所以 docker run -it --rm bitnami/redis:latest redis-cli -h host.docker.internal -p 6379 应该可以工作【参考方案2】:

如果是密码,我们还需要再传递一个参数

redis-cli -h host -p port -a password

【讨论】:

在命令行上使用密码可能不安全。更安全的版本是无需密码即可连接。 redis-cli -h host -p port 然后进行身份验证。 host:6379> AUTH abcdefg【参考方案3】:

使用redis-cli连接远程redis服务器有两种方式:

1。在命令中单独使用主机和端口作为选项

redis-cli -h host -p port

如果您的实例受密码保护

redis-cli -h host -p port -a password

例如如果my-web.cache.amazonaws.com 是主机地址,6379 是端口

那么这将是命令:

redis-cli -h my-web.cache.amazonaws.com -p 6379

如果92.101.91.8是主机IP地址,6379是端口:

redis-cli -h 92.101.91.8 -p 6379

如果实例使用密码pass123 保护,则命令:

redis-cli -h my-web.cache.amazonaws.com -p 6379 -a pass123

2。在命令中使用单个 uri 选项

redis-cli -u redis://password@host:port

带有用户名和密码的单个uri 表单中的命令

redis-cli -u redis://username:password@host:port

例如对于相同的上述主机 - 端口配置命令将是

redis-cli -u redis://pass123@my-web.cache.amazonaws.com:6379

如果还提供用户名,则命令user123

redis-cli -u redis://user123:pass123@my-web.cache.amazonaws.com:6379

这个详细的答案是为那些想要检查所有选项的人准备的。 更多信息查看文档:Redis command line usage

【讨论】:

如何连接到使用ssl的redis。当我尝试这个redis-cli -u rediss://default:passwd@example-redis.aivencloud.com:25945 时,它会抛出Invalid URI scheme 错误。 @Arvin redis-cli 不支持 TLS 连接,因此您需要使用支持 rediss 协议的其他工具才能使用 URI 进行连接。我建议使用redli(github.com/IBM-Cloud/redli) 和这个命令来连接:redli --tls -u rediss://default:passwd@example-redis.aivencloud.com:25945。但如果你一定要使用redis-cli,那么你将需要为此做额外的配置。检查:redis.io/topics/encryption【参考方案4】:

这个命令让我有点困惑的是,如果redis-cli 无法使用传递的连接字符串进行连接,它仍会将您置于redis-cli shell 中,即:

redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> 

然后您需要exit 才能让自己摆脱困境。我在这里没太注意,一直在传递新的redis-cli 命令,想知道为什么该命令没有使用我传递的连接字符串。

【讨论】:

以上是关于如何连接到远程 Redis 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何让本地heroku应用程序连接到远程REDIS?

Linux无法远程连接Redis?

无法从 Express 连接到远程 Redis

连接远程redis服务器

如何从 Docker 容器连接到本地 Redis 服务器?

Redis如何通过本机客户端访问远程服务器段