Python Redis:转储负载版本或校验和错误
我正在尝试将所有密钥从一个redis数据库复制到我的本地计算机。设置两个连接并在本地副本上调用Python Redis:转储负载版本或校验和错误,python,redis,Python,Redis,我正在尝试将所有密钥从一个redis数据库复制到我的本地计算机。设置两个连接并在本地副本上调用flushdb以清除所有键后,我运行以下操作: 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.
flushdb
以清除所有键后,我运行以下操作:
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))
对于src.keys('*')中的键:
ttl=src.ttl(键)
#句柄TTL命令返回-1(无过期)或-2(无密钥)
如果ttl<0:
ttl=0
dst.restore(键、ttl、src.dump(键))
一些密钥被正确还原,但在某个时候我遇到了redis.exceptions.ResponseError:DUMP payload version或checksum错误
你知道如何解决这个问题吗?你能重新创建有问题的负载吗?你能重新创建有问题的负载吗?这很奇怪-你的源和目标Redis是什么版本的?所以我相信问题与TTLs有关。如果我删除或以其他方式省略了带有TTL的所有键,脚本运行良好。我不确定dst.restore是否会根据src.dump输出或其他内容检查给定的TTL?这很奇怪-您的源和目标Redis是什么版本?因此我相信问题与TTL有关。如果我删除或以其他方式省略了带有TTL的所有键,脚本运行良好。我不确定dst.restore是否根据src.dump输出或其他内容检查给定的TTL?