プログラミング初学者なしこの技術アウトプット

プログラミングスクールRUNTEQで学んだことや自習したことのアウトプットをするブログ

dump.rdbがカレントディレクトリに作成されてしまう問題

redisを導入したら、dump.rdbというファイルが生成されたのでgitignoreした方がいいのか講師の方に聞いたところ、そもそもカレントディレクトリに作られてしまうのがよろしくないのでredisの設定を変えた方がいいとのアドバイスを頂きました!

調べたこと

Redisはインメモリデータベースであるため、サーバプロセスが終了するとメモリ上のデータも消えてしまう。サーバプロセス終了後もデータを保持するための機能がRDBというもの。

Redisでは特定の時点のスナップショットをRDBファイル(データベースのダンプファイル)として保存することができる。
( https://www.sraoss.co.jp/tech-blog/redis/redis-persistdata/ )

対応内容

dump.rdbがカレントディレクトリに生成されてしまう - blog.kotamiyake.me
上記のサイトを参考に以下の手順を実施。

1. /usr/local/etc/redis.confの設定を確認し、以下の通り/usr/local/var/db/redis/にdump.rdbが生成される設定になっていることを確認しました。

/usr/local/etc/redis.conf

~~略~~~

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /usr/local/var/db/redis/
~~略~~~

2. 実際の設定はどうなっているのか確認。ここがカレントディレクトリになっていました。

% redis-server
% redis-cli       
127.0.0.1:6379> config get dir
1) "dir"
2) "/Users/natsumimatsuda/workspace/menta!/insta_clone/insta_clone_by_me"

3. この参考サイト曰く、そもそもredis-serverの起動時に設定ファイルのパスを指定してあげる必要があったようなので

% redis-server /usr/local/etc/redis.conf

としたら、ちゃんと設定通りの場所にdump.rdbファイルが生成されるようになりました。

% ls /usr/local/var/db/redis/
dump.rdb

% redis-serverで起動するとカレントディレクトリに生成されてしまうので、% redis-server /usr/local/etc/redis.confで起動するようにし、更に念の為gitignoreのdump.rdbを追加しておきました。