BEWERKEN
Dit antwoord is niet langer correct voor nieuwere versies van redis. Het antwoord verlaten om historische redenen.
Als je een beetje met binaire bestanden wilt spelen, kun je de twee dump.rdb-bestanden eenvoudig combineren tot één.
Aannames:
- Elke dump heeft slechts een enkele database - de standaarddatabase
- U gebruikt Redis 2.4.x en daarom is de dumpversie 2 of 3
Als u het bestand in een hex-editor opent, is dit het formaat van het RDB-bestand -
REDIS000x FE 00 <actual data > FF
Hier -
000x
is het rdb-versienummer. In jouw geval zal het hoogstwaarschijnlijk 0002 of 0003 zijnFE
is de databasekiezer, en00
is het databasenummer<actual data>
is de sleutel-waardeparen in de huidige database. Je kunt dit behandelen als een binaire blob voor je huidige doel.FF
is de laatste byte in het bestand en geeft het einde van het rdb-bestand aan
Dus om de twee rdb-bestanden samen te voegen, doe je het volgende -
- Maak een nieuw doelbestand
- Kopieer alles van het eerste bestand behalve de laatste
FF
- Kopieer twee bytes
FE 01
om het begin van de tweede database aan te geven - OPMERKING:Als u zeker weet dat de twee databases geen dubbele sleutels hebben, en u wilt ze combineren in een enkele database, sla dan gewoon de twee bytes over
FE 01
hierboven vermeld. - Sla uit het tweede bestand de eerste 11 bytes over - d.w.z. sla
REDIS000x FE 00
over - Kopieer de rest van het tweede bestand, inclusief de laatste byte
FF
U kunt nu deze nieuwe dump.rdb naar de juiste map in redis kopiëren en opnieuw opstarten.
Als u geïnteresseerd bent, vindt u hier de volledige documentatie van het redis dump-bestandsformaat, maar u hoeft niet alles te begrijpen voor dit eenvoudige gebruik.