87

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?

1
  • 4
    /var/lib/redis/dump.rdb (Ubuntu)
    – guettli
    Jan 12, 2021 at 14:49

3 Answers 3

150

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.

5
  • 19
    This 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
  • 4
    It gave you the config for the instance you connected to. If not, file a bug. Jul 20, 2018 at 4:25
  • 4
    this 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
  • This outputs two directories; which is correct?
    – DylanYoung
    Dec 8, 2021 at 20:22
  • 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.
    – Eric Burel
    Aug 17, 2023 at 13:49
41

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.

0
4

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.