Open1
Upstash Redisから普通のRedisへの移行
問題
Upstash Redisはダンプに必要なコマンドが無効化されている
通常、下記のようなコマンドを使ってダンプを取得することができるが、Upstash Redisにおいては無効化されている。
redis-cli -h HOST -p PORT --rdb dump.rdb
KEYSコマンドが無効化されているので、単純なスクリプトで移行できない
次のようなスクリプトは動かない。
const keys = await clientA.keys('*');
for (const key of keys) {
const value = await clientA.get(key);
if (value !== null) {
await clientB.set(key, value);
}
}
解決法
公式でupstash-redis-dump
というツールが配布されているので、これを使ってダンプを取得する。
upstash-redis-dump -db 0 -host YOUR_UPSTASH_SUBDOMAIN.upstash.io -port 6379 -pass PASSWORD -tls > redis.dump
なお、ダンプは秒間1kキー程度の速度で進むので、大量にキーがある場合は注意。