sql >> Database teknologi >  >> NoSQL >> Redis

Kombiner to Redis-instanser til en enkelt instans med to dbs

REDIGER

Dette svar er ikke længere nøjagtigt for nyere versioner af redis. Forlader svaret af historiske årsager.

Hvis du er villig til at lege lidt med binære filer, kan du nemt kombinere de to dump.rdb-filer til én.

Forudsætninger:

  1. Hver dump har kun en enkelt database - standarddatabasen
  2. Du bruger Redis 2.4.x, og derfor er dumpversionen enten 2 eller 3

Hvis du åbner filen i en hex-editor, er dette formatet på RDB-filen -

REDIS000x FE 00 FF

Her -

  • 000x er rdb-versionsnummeret. Det vil højst sandsynligt være 0002 eller 0003 i dit tilfælde
  • FE er databasevælgeren og 00 er databasenummeret
  • er nøgleværdi-parrene i den aktuelle database. Du kan behandle dette som en binær klat til dit nuværende formål.
  • FF er den sidste byte i filen og angiver slutningen af ​​rdb-filen

Så for at flette de to rdb-filer, skal du gøre følgende -

  1. Opret en ny destinationsfil
  2. Kopiér alt fra den første fil undtagen den sidste FF
  3. Kopiér to bytes FE 01 for at angive starten på anden database
  4. BEMÆRK:Hvis du er sikker på, at de to databaser ikke har dublerede nøgler, og du vil kombinere dem til en enkelt database, skal du blot springe de to bytes FE 01 over. nævnt ovenfor.
  5. Fra den anden fil, spring de første 11 bytes over - dvs. spring REDIS000x FE 00 over
  6. Kopiér resten af ​​den anden fil, inklusive den sidste byte FF

Du kan nu kopiere denne nye dump.rdb til den relevante mappe i redis og genstarte.

Hvis du er interesseret, er her komplet dokumentation for redis dump-filformat, men du behøver ikke at forstå det hele for denne simple brug.



  1. MongoDB omdøb databasefeltet i array

  2. Byg en reaktiv publikation med yderligere felter i hvert dokument

  3. Sådan sikrer du ClusterControl-serveren

  4. Hvilken betydning har rækkefølgen af ​​sammensatte indekser i MongoDB præstationsmæssigt?