Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Połącz dwie instancje Redis w jedną instancję z dwoma dbs

EDYTUJ

Ta odpowiedź nie jest już dokładna dla nowszych wersji redis. Pozostawiając odpowiedź z powodów historycznych.

Jeśli chcesz trochę pobawić się plikami binarnymi, możesz łatwo połączyć dwa pliki dump.rdb w jeden.

Założenia :

  1. Każdy zrzut ma tylko jedną bazę danych - domyślną bazę danych
  2. Używasz Redis 2.4.x, dlatego wersja zrzutu to 2 lub 3

Jeśli otworzysz plik w edytorze szesnastkowym, jest to format pliku RDB -

REDIS000x FE 00 <actual data > FF

Tutaj -

  • 000x to numer wersji rdb. Najprawdopodobniej w twoim przypadku będzie to 0002 lub 0003
  • FE jest selektorem bazy danych, a 00 to numer bazy danych
  • <actual data> to pary klucz-wartość w bieżącej bazie danych. Możesz traktować to jako binarny obiekt typu blob do swojego obecnego celu.
  • FF jest ostatnim bajtem w pliku i wskazuje koniec pliku rdb

Aby połączyć dwa pliki rdb, wykonaj następujące czynności -

  1. Utwórz nowy plik docelowy
  2. Skopiuj wszystko z pierwszego pliku z wyjątkiem ostatniego FF
  3. Skopiuj dwa bajty FE 01 aby wskazać początek drugiej bazy danych
  4. UWAGA:Jeśli jesteś pewien, że dwie bazy danych nie mają zduplikowanych kluczy i chcesz połączyć je w jedną bazę danych, po prostu pomiń dwa bajty FE 01 wspomniane powyżej.
  5. Od drugiego pliku pomiń pierwsze 11 bajtów - tj. pomiń REDIS000x FE 00
  6. Skopiuj resztę drugiego pliku, w tym ostatni bajt FF

Możesz teraz skopiować ten nowy plik dump.rdb do odpowiedniego katalogu w redis i ponownie uruchomić.

Jeśli jesteś zainteresowany, oto pełna dokumentacja formatu pliku zrzutu redis, ale nie musisz jej wszystkiego rozumieć w tym prostym przypadku użycia.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Uzyskaj wartość zestawu z Redis za pomocą RedisTemplate

  2. Dlaczego Travis nie może się połączyć, użyj Redis cache_store podczas wdrażania do Heroku?

  3. Nie można połączyć się z Redis o 127.0.0.1:6379:Połączenie odrzucone z homebrew

  4. Jak wyszukiwać wartość treści w redis przez BookSleeve

  5. Jak zainstalować RDBTools przy użyciu szablonu AWS CloudFormation?