Connect To Redis From A Different Machine
IMPORTANT: Making this application’s network ports public is a significant security risk. You are strongly advised to only allow access to those ports from trusted networks. If, for development purposes, you need to access from outside of a trusted network, please do not allow access to those ports via a public IP address. Instead, use a secure channel such as a VPN or an SSH tunnel.
Open Port ( if Needed)
sudo ufw allow 7001
[ Verify it: ]
sudo ufw status verbose
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 7001
[ -c for cluster ] redis-cli -h 10.144.62.3 -p 7001 -c
Replace the YOURPASSWORD placeholder with the value of your password:
redis-cli -h SERVER-IP -a YOURPASSWORD
Note: Disable Protected Mode and Bind Address 0.0.0.0 from node.conf file
exit
Move Redis database from one server to another (Migration)
Redis dump file is 100% backwards compatible. An older dump file format will always work with a newer version of Redis.
First, create a dump on server A.
A$ redis-cli 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/var/lib/redis/" 127.0.0.1:6379> SAVE OK
This ensures dump.rdb is completely up-to-date, and shows us where it is stored (/var/lib/redis/dump.rdb in this case). dump.rdb is also periodically written to disk automatically.
Next, copy it to server B:
A$ scp /var/lib/redis/dump.rdb myuser@B:/tmp/dump.rdb
Stop the Redis server on B, copy dump.rdb (ensuring permissions are the same as before), then start.
B$ sudo service redis-server stop B$ sudo cp /tmp/dump.rdb /var/lib/redis/dump.rdb B$ sudo chown redis: /var/lib/redis/dump.rdb B$ sudo service redis-server start
The version of Redis on B must be greater or equal than that of A
Note: Simple (python) Script you can use : https://github.com/arifmarias/redismigration
Upgrade Redis
First, find the location of your installed redis-server instance before updating. In my case, it was in /usr/local/bin/, but it might also be in /usr/bin/. If it’s not here, you can type which redis-server to find the location.
Next, download the redis tar file from https://redis.io/download, then install it from the directory it downloaded to:
cd Downloads
wget http://download.redis.io/releases/redis-X.Y.Z.tar.gztar xzf redis-X.Y.Z.tar.gz
cd redis-X.Y.Z
make
make test
Next, we’ll move the new installed redis to the location where the current instance is running:
sudo mv src/redis-server /usr/local/bin
sudo mv src/redis-cli /usr/local/bin
After copy content you need restart redis-server:
sudo /etc/init.d/redis-server restart
To validate the version of redis-server and redis-cli run:
redis-cli -v #redis-cli version
redis-cli INFO #redis-server version
Now you should be ready to use redis-server and redis-cli in the new version.
Setting the Log Location in redis.conf
The Redis log location is specified in Redis’s configuration file, redis.conf, often located at /etc/redis/redis.conf.
Open that file for editing:
sudo nano /etc/redis/redis.conf
Locate the logfile line:/etc/redis/redis.conf
logfile /var/log/redis/redis-server.log
Note the location of the log files. You can edit this file path if you want to rename the log file or change its location.
If your logs aren’t in either of those locations, you can conduct a more general search using find in the /var/logs directory:
find /var/log/* -name *redis*
Or, search your entire system. This might take a while if you have a lot of files. It will turn up a few permission warnings, which is normal, although we’re avoiding the worst of them in /proc and /sys with the two -prune flags. It will also turn up every file with redis in the name, which includes installation files:
find / -path /sys -prune -o -path /proc -prune -o -name *redis*
Configuring a Redis Password ( Authentication )
Configuring a Redis password enables one of its two built-in security features — the auth command, which requires clients to authenticate to access the database. The password is configured directly in Redis’s configuration file, /etc/redis/redis.conf, so open that file again with your preferred editor:
sudo nano /etc/redis/redis.conf
Scroll to the SECURITY section and look for a commented directive that reads:/etc/redis/redis.conf
# requirepass foobared
Uncomment it by removing the #, and change foobared to a secure password.
After setting the password, save and close the file, then restart Redis
To test that the password works, access the Redis command line:
redis-cli
The following shows a sequence of commands used to test whether the Redis password works. The first command tries to set a key to a value before authentication:
set key1 10
That won’t work because you didn’t authenticate, so Redis returns an error:
Output(error) NOAUTH Authentication required.
The next command authenticates with the password specified in the Redis configuration file:
auth your_redis_password
Redis acknowledges:
Output OK
After that, running the previous command again will succeed:
set key1 10
Output OK
