sql >> Databáze >  >> NoSQL >> Redis

Zkombinujte dvě instance Redis do jedné instance se dvěma databázemi

UPRAVIT

Tato odpověď již není přesná pro novější verze redis. Odpověď ponecháme z historických důvodů.

Pokud jste ochotni si trochu pohrát s binárními soubory, můžete snadno spojit dva soubory dump.rdb do jednoho.

Předpoklady:

  1. Každý výpis má pouze jednu databázi – výchozí databázi
  2. Používáte Redis 2.4.x, a proto je verze výpisu 2 nebo 3

Pokud soubor otevřete v hex editoru, jedná se o formát souboru RDB -

REDIS000x FE 00 <actual data > FF

Zde -

  • 000x je číslo verze rdb. Ve vašem případě to bude s největší pravděpodobností 0002 nebo 0003
  • FE je selektor databáze a 00 je číslo databáze
  • <actual data> je páry klíč–hodnota v aktuální databázi. Pro svůj aktuální účel to můžete považovat za binární blob.
  • FF je poslední bajt v souboru a označuje konec souboru rdb

Chcete-li tedy sloučit dva soubory rdb, proveďte následující -

  1. Vytvořte nový cílový soubor
  2. Zkopírujte vše z prvního souboru kromě posledního FF
  3. Zkopírujte dva bajty FE 01 k označení začátku druhé databáze
  4. POZNÁMKA:Pokud jste si jisti, že obě databáze nemají duplicitní klíče a chcete je sloučit do jediné databáze, jednoduše přeskočte dva bajty FE 01 uvedeno výše.
  5. Z druhého souboru přeskočte prvních 11 bajtů – tj. přeskočte REDIS000x FE 00
  6. Zkopírujte zbytek druhého souboru, včetně posledního bajtu FF

Nyní můžete tento nový dump.rdb zkopírovat do příslušného adresáře v redis a restartovat.

Máte-li zájem, zde je kompletní dokumentace formátu souboru s výpisem redis, ale pro tento jednoduchý případ použití nemusíte všemu rozumět.



  1. Redis jako jedinečný generátor atomových id – bezpečný způsob pro webovou aplikaci, jak se vyhnout závodům

  2. Kdy použít GridFS na MongoDB?

  3. Fronta zpráv Redis pubsub, ale se zpětným voláním, jako v ZeroMQ

  4. Přejít:Vytvořte rozhraní io.Writer pro přihlášení do databáze mongodb