2016-07-19 2 views
0

Ich versuche, alle Schlüssel aus einer Redis-Datenbank auf meinem lokalen Rechner zu kopieren. Nachdem beid Verbindungen des Aufbau und flushdb auf der lokalen Kopie rief alle Schlüssel zu löschen, ich laufe dies:Python Redis: DUMP Payload-Version oder Prüfsumme sind falsch

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)) 

Einige der Schlüssel richtig gestellt zu werden, aber dann irgendwann ich laufe in redis.exceptions.ResponseError: DUMP payload version or checksum are wrong

Irgendeine Idee, wie man das umgehen kann?

+0

Das ist neugierig - welche Versionen sind Ihre Quelle und Ziel Redis? –

+0

Also ich glaube, dass das Problem mit TTLs zusammenhing. Wenn ich alle Schlüssel mit TTLs entferne oder auf andere Weise ausschließe, läuft das Skript gut. Ich bin nicht sicher, ob dieser dst.restore die gegebene TTL gegen irgendwelche src.dump Ausgaben oder etwas überprüft? – Andrew

Antwort

0

Können Sie die beleidigende Nutzlast neu erstellen?