Misskeyなどでよく使われているRedisを、よりパフォーマンスが高くマルチスレッドに対応したKeyDBへ移行する際の手順をまとめました。
【記事作成時の環境】
OS: Ubuntu Server 22.04.4 LTS
Redis: 6.2.14
KeyDB: 6.3.4
Redis 7.x から KeyDB 6.x に移行することはできません。
1. KeyDBのインストール
KeyDB公式リポジトリを追加して、インストールします。
$ echo "deb https://download.keydb.dev/open-source-dist $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/keydb.list
$ sudo wget -O /etc/apt/trusted.gpg.d/keydb.gpg https://download.keydb.dev/open-source-dist/keyring.gpg
$ sudo apt update
$ sudo apt install keydb
2. Redisの完全シャットダウン
まず、Redis側でdump.rdbを確実に書き出してから停止させます。
dump.rdbはデフォルトの設定であれば /var/lib/redis に保存されます。次のステップで使用します。
$ redis-cli
127.0.0.1:6379> bgsave
Background saving started
127.0.0.1:6379> quit
$ sudo systemctl stop redis-server
3. dump.rdb のコピー
Redis互換のインメモリデータベースソフトウェアは、定期的もしくはサービス終了時1にメモリ上のデータベースの内容をdump.rdbというファイルに保存しており、起動時は指定ディレクトリにあるそのファイルを読み込んでメモリ上に展開してサービスを再開します。
このdump.rdbをKeyDBのディレクトリに移します。
$ sudo cp /var/lib/redis/dump.rdb /var/lib/keydb/dump.rdb
所有者をkeydbに変更します。
$ sudo chown keydb:keydb /var/lib/keydb/dump.rdb
4. KeyDBの起動
最後にKeyDBを起動します。
$ sudo systemctl start keydb-server
問題なくデータベースが引き継がれており、キーが読み出せることも確認できたら作業は終了です。
KeyDB から Redis に戻す場合
2 〜 4の手順においてRedisとKeyDBの立場を逆にして行います。
-
終了時にSIGTERMを送信している場合 ↩