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?
3 Answers
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. 
- 
        19This didn't work for me, it returned a completely wrong directory. I found my config at
/usr/local/etc/redis.conf. Jun 11, 2018 at 12:04 - 
        4It gave you the config for the instance you connected to. If not, file a bug. Jul 20, 2018 at 4:25
 - 
        4this command will return the application directory location based on the redis.conf file or default config (if you don't have one) not the config file location Oct 20, 2020 at 7:43
 - 
        
 - 
        Is there a response that could be consistent when running Docker? For instance when running Mongo I map volumes like so: "'./.mongo:/data/db'", pretty useful to control the location of data during local dev. I am trying to find an equivalent for Redis. Aug 17, 2023 at 13:49
 
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.
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.
/var/lib/redis/dump.rdb(Ubuntu)