如何连接到远程 Redis 服务器?
Posted
技术标签:
【中文标题】如何连接到远程 Redis 服务器?【英文标题】:How to connect to remote Redis server? 【发布时间】:2017-04-02 09:50:19 【问题描述】:我有远程 Redis 服务器的 URL 和端口。我可以从 Scala 写入 Redis。但是,我想通过终端使用redis-server
或类似的东西连接到远程Redis,以便多次调用hget
、get
等(我可以使用本地安装的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 服务器?的主要内容,如果未能解决你的问题,请参考以下文章