0
すべてのキーを1つのredisデータベースからローカルマシンにコピーしようとしています。両方の接続を設定し、すべてのキーを消去するには、ローカルコピーにflushdb
を呼び出した後、私はこれを実行します。Python Redis:DUMPペイロードバージョンまたはチェックサムが間違っています
for key in src.keys('*'):
ttl = src.ttl(key)
# Handle TTL command returning -1 (no expire) or -2 (no key)
if ttl < 0:
ttl = 0
dst.restore(key, ttl, src.dump(key))
キーの一部が正しく復元取得されているが、その後、いくつかの点で私はredis.exceptions.ResponseError: DUMP payload version or checksum are wrong
これを回避する方法はありますか?
それは興味深いです - あなたのソースと宛先Redisはどのバージョンですか? –
私は問題がTTLに関連していたと思います。 TTLを持つすべてのキーを削除したり省略したりすると、スクリプトはうまく動作します。 dst.restoreがsrc.dumpの出力や何かに対して、指定されたTTLをチェックするかどうかはわかりません。 – Andrew