如何连接远程Redis服务器?

258

我有远程Redis服务器的URL和PORT。我能够使用Scala向Redis写入数据。但是我想通过终端连接到远程Redis,使用redis-server或类似的命令进行多次调用hgetget等(在本地安装的Redis中没有任何问题)。

6个回答

434
redis-cli -h XXX.XXX.XXX.XXX -p YYYY
< p > 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


5
提示信息:无法连接到 Redis,地址为 -c:6379,因名称解析临时失败。(说明:该提示信息表明 Redis 连接失败,可能是由于地址未正确解析导致的。) - duckertito
1
@duckertito- 能解决这个问题吗?我也遇到了同样的问题。 - Jeff Cook
31
如果你不想分别输入主机名和端口号,可以使用redis-cli -u redis://user:pass@host:port - user3344977
主机具有动态 IP 地址(如果您没有网络访问权限,则为无)。我们建议您连接到特殊的 DNS 名称 host.docker.internal,该名称解析为主机使用的内部 IP 地址。因此,docker run -it --rm bitnami/redis:latest redis-cli -h host.docker.internal -p 6379 应该可以正常工作。 - kirancodify

93

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

1. 在命令中分别使用主机和端口作为选项

redis-cli -h host -p port

如果您的实例受到密码保护

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

例如,如果my-web.cache.amazonaws.com是主机URL,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命令行用法


2
如何连接使用 SSL 的 Redis。 当我尝试这样做时 redis-cli -u rediss://default:passwd@example-redis.aivencloud.com:25945,它会抛出 Invalid URI scheme 错误。 - Arvin
3
@Arvin redis-cli 不支持 TLS 连接,因此您需要使用支持 rediss 协议的不同工具才能使用 URI 进行连接。 我建议使用 redli(https://github.com/IBM-Cloud/redli) 和以下命令进行连接:redli --tls -u rediss://default:passwd@example-redis.aivencloud.com:25945。但是,如果您必须使用 redis-cli,则需要进行额外的配置。请查看:https://redis.io/topics/encryption - OM Bharatiya
在Java中使用单个uri选项,请在末尾添加数据库索引: 例如:如果是/0,则为redis://user:password@host:port/0 - Abel Matos

67
在密码情况下,我们需要传递一个额外的参数。
redis-cli -h host -p port -a password

11
在命令行中使用密码可能不安全。更安全的方式是在没有密码的情况下连接。redis-cli -h host -p port,然后进行身份验证。host:6379> AUTH abcdefg - David Baucum

15

在这条命令中,有一点让我感到困惑,如果使用传递的连接字符串连接失败,redis-cli 仍然会将您放在 redis-cli shell 中,即:

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

你需要使用exit命令退出shell。我在这里没有仔细看,一直传递新的redis-cli命令,想知道为什么命令没有使用我的传递的连接字符串。


2

如果你遇到了 Error: Server closed the connection 请尝试使用 --tls 开关:

redis-cli --tls -h my-redis.redis.cache.windows.net -p 6379 -a myRedisPassword
  • h 主机名
  • p 端口号
  • a 密码

0
如果以上回答都不起作用,那么请尝试以下方法:
redis-cli -u rediss://user:pass@host:port

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接