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)