How to connect to remote Redis server?
RedisRedis Problem Overview
I have URL and PORT of remote Redis server. I am able to write into Redis from Scala. However I want to connect to remote Redis via terminal using redis-server
or something similar in order to make several call of hget
, get
, etc. (I can do it with my locally installed Redis without any problem).
Redis Solutions
Solution 1 - Redis
redis-cli -h XXX.XXX.XXX.XXX -p YYYY
xxx.xxx.xxx.xxx
is the IP address and yyyy
is the port
EXAMPLE from my dev environment
redis-cli -h 10.144.62.3 -p 30000
> Host, port, password and database By default redis-cli connects to the > server at 127.0.0.1 port 6379. As you can guess, you can easily change > this using command line options. To specify a different host name or > an IP address, use -h. In order to set a different port, use -p. > > redis-cli -h redis15.localnet.org -p 6390 ping
Solution 2 - Redis
In Case of password also we need to pass one more parameter
redis-cli -h host -p port -a password
Solution 3 - Redis
There are two ways to connect remote redis server using redis-cli
:
- Using host & port individually as options in command
redis-cli -h host -p port
If your instance is password protected
redis-cli -h host -p port -a password
e.g. if my-web.cache.amazonaws.com
is the host url and 6379
is the port
Then this will be the command:
redis-cli -h my-web.cache.amazonaws.com -p 6379
if 92.101.91.8
is the host IP address and 6379
is the port:
redis-cli -h 92.101.91.8 -p 6379
command if the instance is protected with password pass123
:
redis-cli -h my-web.cache.amazonaws.com -p 6379 -a pass123
uri
option in command
2. Using single redis-cli -u redis://password@host:port
command in a single uri
form with username & password
redis-cli -u redis://username:password@host:port
e.g. for the same above host - port configuration command would be
redis-cli -u redis://pass[email protected]:6379
command if username is also provided user123
redis-cli -u redis://user123:[email protected]:6379
This detailed answer was for those who wants to check all options. For more information check documentation: Redis command line usage
Solution 4 - Redis
One thing that confused me a little bit with this command is that if redis-cli
fails to connect using the passed connection string it will still put you in the redis-cli
shell, i.e:
redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
You'll then need to exit
to get yourself out of the shell. I wasn't paying much attention here and kept passing in new redis-cli
commands wondering why the command wasn't using my passed connection string.