Where is the data directory in Redis?
RedisDirectoryServerRedis Problem Overview
After writing some data to a redis server, I could read the data from a client. However, how can I find the data directory on the file system?
Redis Solutions
Solution 1 - Redis
Quickest method: use redis-cli.
redis-cli config get dir
If you have authentication configured, you will need to pass that in using -a password
Replacing "password" with your password.
Solution 2 - Redis
Find your Redis configuration directory, probably /etc/redis
. Then look in the config file called redis.conf
and find the line that starts dir
.
It will look similar to this:
dir /etc/redis/database
This will do the job slowly but surely if you can't be bothered to look :-)
sudo find / -name "redis.conf" -exec grep "^dir" {} \; 2> /dev/null
dir /etc/redis
or if you want the config filename as well:
sudo find / -name "redis.conf" -exec grep -H "^dir" {} \; 2> /dev/null
/private/etc/redis/redis.conf:dir /etc/redis
Other possibilities you can check are whether Redis was started with a custom config file as its first parameter like this:
redis-server /path/to.custom/config-file
or with the dir
option set on the commandline like this:
redis-server dir /path/to/data
Use
ps -aef | grep redis
to look for these options.
Solution 3 - Redis
Because Redis config file can be located in several possible places (depending on the system or container, such as /opt/redis/
in my case), a general solution to find the currently configured location of the RDB file (as set using dir
in redis.conf
- if config file is used at all*) is:
$ cat $(cd / && find | grep redis.conf) | grep dir
*Note that true to its simplicity Redis by default ships without any config files (using built-in configuration which depends on the version, see docs), and this is indeed the case for the official redis:latest
container.