Redis のデータベースファイル(dump.rdb)を解析する(Ubuntu 上)
【概要】
Redis はデータを dump.rdb というファイルに保存する(RDB スナップショット)。このファイルを解析すると、格納内容の確認やメモリ使用量の集計ができる。本ページでは、Ubuntu 上で dump.rdb を解析する手順を、現行の環境に合わせて説明する。
【目次】
【関連する外部ページ】
Redis の永続化(RDB)公式ドキュメント:https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/
【サイト内の関連ページ】
1. 前準備
システムの更新
# パッケージ一覧を更新
sudo apt update
# 導入済みパッケージを更新(依存関係も考慮)
sudo apt full-upgrade
# 変更を反映するため再起動
sudo shutdown -r now
Redis の導入
Ubuntu への Redis の導入手順は別ページ »で解説している。
2. 解析ツールの導入
かつて広く使われた
redis-rdb-tools(sripathikrishnan 版)は開発が停止しており、Python 2 系前提の python setup.py install を含むため、Python 3.12 環境では標準的な手順では動作しない。本ページでは、現行環境で確実に使える方法として、Redis 付属の redis-cli による内容確認と、メモリ解析用に redis-cli --memkeys/MEMORY USAGE を用いる。
Python 3.12 環境で dump.rdb を JSON などに変換したい場合は、現在も保守されている RDB パーサ(例:Go 製の redis-rdb-cli や Rust 製の rdb)を利用する方法がある。ここでは追加導入なしに使える Redis 標準機能を中心に説明する。
3. dump.rdb の解析
- Redis サーバの稼働を確認する
redis-cli ping - 検証用データを作成し、スナップショットを保存する
redis-cli set a 100 set b 200 save exit
- 格納内容を確認する
キー一覧と各値は次のように確認できる。
redis-cli keys "*" redis-cli get a redis-cli get b
- メモリ使用状況を確認する
キーごとのメモリ使用量は
MEMORY USAGEで、メモリを多く使うキーの一覧は--memkeysで確認できる。redis-cli memory usage a redis-cli --memkeys
- スナップショットの保存場所
dump.rdb の保存先ディレクトリとファイル名は次のように確認できる。
redis-cli config get dir redis-cli config get dbfilename