Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Gabungkan dua instance Redis menjadi satu instance dengan dua dbs

EDIT

Jawaban ini tidak lagi akurat untuk versi redis yang lebih baru. Meninggalkan jawaban karena alasan historis.

Jika Anda ingin bermain-main sedikit dengan file biner, Anda dapat dengan mudah menggabungkan dua file dump.rdb menjadi satu.

Asumsi :

  1. Setiap dump hanya memiliki satu database - database default
  2. Anda menggunakan Redis 2.4.x, oleh karena itu versi dumpnya adalah 2 atau 3

Jika Anda membuka file dalam editor hex, ini adalah format file RDB -

REDIS000x FE 00 <actual data > FF

Di sini -

  • 000x adalah nomor versi rdb. Kemungkinan besar adalah 0002 atau 0003 dalam kasus Anda
  • FE adalah pemilih basis data, dan 00 adalah nomor database
  • <actual data> adalah pasangan kunci-nilai dalam database saat ini. Anda dapat memperlakukan ini sebagai gumpalan biner untuk tujuan Anda saat ini.
  • FF adalah byte terakhir dalam file dan menunjukkan akhir dari file rdb

Jadi untuk menggabungkan dua file rdb, lakukan hal berikut -

  1. Buat file tujuan baru
  2. Salin semuanya dari file pertama kecuali FF terakhir
  3. Salin dua byte FE 01 untuk menunjukkan awal dari database kedua
  4. CATATAN :Jika Anda yakin kedua database tidak memiliki kunci duplikat, dan Anda ingin menggabungkannya menjadi satu database, lewati saja dua byte FE 01 disebutkan di atas.
  5. Dari file kedua, lewati 11 byte pertama - yaitu lewati REDIS000x FE 00
  6. Salin sisa file kedua, termasuk byte terakhir FF

Sekarang Anda dapat menyalin dump.rdb baru ini ke direktori yang sesuai di redis dan memulai ulang.

Jika Anda tertarik, berikut dokumentasi lengkap format file redis dump, tetapi Anda tidak perlu memahami semuanya untuk kasus penggunaan sederhana ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menghapus pekerja Resque yang macet/basi?

  2. Koneksi redis hilang dari acara dekat

  3. Bisakah redis menonaktifkan balasan untuk perintah pipelined?

  4. Seledri mengalahkan + redis dengan lemparan kata sandi Tidak ada pengecualian Otentikasi

  5. mengimplementasikan cache di luar proses menggunakan Redis di windows Azure