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

Apa strategi terbaik untuk menyinkronkan data Redis ke MySQL?

Anda tidak perlu meretas apa pun;)

Saya tidak sepenuhnya yakin mengapa Anda memerlukan data di mysql. Jika saya tahu, mungkin akan ada jawaban yang lebih cocok. Bagaimanapun, sebagai jawaban umum, Anda dapat menggunakan notifikasi redis keyspace

Anda dapat berlangganan perintah HSET, HMSET, HDEL dan DEL pada kunci Anda, sehingga Anda akan mendapatkan pemberitahuan setiap kali kunci dihapus atau nilai hash disetel atau dihapus.

Perhatikan jika Anda melewatkan pemberitahuan apa pun, Anda akan mengalami inkonsistensi. Jadi sesekali Anda bisa menggunakan perintah SCAN untuk memeriksa semua kunci Anda dan memeriksa mysql jika mereka perlu diperbarui.

Strategi lain dapat mempertahankan dua struktur yang terpisah. Salah satunya adalah hash dengan nilai, dan yang lainnya akan menjadi ZSET dari semua nilai yang diurutkan berdasarkan stempel waktu pembaruan. Cara terbaik untuk menjaga agar kedua struktur tetap mutakhir adalah dengan menulis dua atau tiga skrip lua (masukkan/perbarui dan hapus) yang akan beroperasi pada hash dan zset secara atom.

Kemudian Anda dapat secara berkala menanyakan ZSET untuk elemen dengan stempel waktu lebih tinggi dari operasi sinkronisasi terakhir Anda, dapatkan semua kunci yang diperbarui (itu akan mencakup kunci yang dihapus, kecuali jika Anda ingin menyimpan ZSET kedua secara eksklusif untuk itu) dan kemudian hanya ambil semua elemen dengan kunci dan sinkronkan ke mysql.

Semoga ini berhasil untuk Anda!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Simpan sesi pengguna di Redis dengan ASP.NET Core di Azure

  2. Acara redis keyspace tidak diaktifkan

  3. Tidak dapat terhubung ke Redis dari Docker

  4. Mengapa ada array KUNCI dan ARGV saat memanggil skrip Redis Lua?

  5. Bagaimana cara mengkonfigurasi klien Node Redis untuk segera membuang kesalahan, ketika koneksi gagal? [BACA DETAIL]