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

Metode yang lebih cepat untuk memindahkan data redis ke MySQL

Apakah ada cara lain untuk membuang data besar dari Redis ke MySQL?

Redis memiliki kemungkinan (menggunakan bgsave) untuk menghasilkan dump data dengan cara yang tidak memblokir dan konsisten.

https://github.com/sripathikrishnan/redis-rdb-tools

Anda dapat menggunakan paket terkenal Sripathi Krishnan untuk mengurai file dump redis (RDB) dengan Python, dan mengisi instance MySQL secara offline. Atau Anda dapat mengonversi dump Redis ke format JSON, dan menulis skrip dalam bahasa apa pun yang Anda inginkan untuk mengisi MySQL.

Solusi ini hanya menarik jika Anda ingin menyalin data lengkap dari instance Redis ke MySQL.

Apakah Redis memiliki sistem pemicu yang dapat saya gunakan untuk menghindari sistem antrian seperti cron?

Redis tidak memiliki konsep pemicu, tetapi tidak ada yang mencegah Anda untuk memposting acara di antrian Redis setiap kali sesuatu harus disalin ke MySQL. Misalnya, alih-alih:

# Add an item to a user shopping cart
RPUSH user:<id>:cart <item>

Anda dapat menjalankan:

# Add an item to a user shopping cart
MULTI
RPUSH user:<id>:cart <item>
RPUSH cart_to_mysql <id>:<item>
EXEC

Blok MULTI/EXEC membuatnya atomik dan konsisten. Kemudian Anda hanya perlu menulis sedikit daemon yang menunggu item dari antrian cart_to_mysql (menggunakan perintah BLPOP). Untuk setiap item dequeued, daemon harus mengambil data yang relevan dari Redis, dan mengisi instance MySQL.

Redis gagal menyimpan data kami dalam file, jadi apakah mungkin menyimpan data itu langsung ke database MySQL?

Saya tidak yakin saya mengerti pertanyaan di sini. Tetapi jika Anda menggunakan solusi di atas, latensi antara pembaruan Redis dan pembaruan MySQL akan sangat terbatas. Jadi jika Redis gagal, Anda hanya akan kehilangan operasi terakhir (bertentangan dengan solusi berdasarkan pekerjaan cron). Tentu saja tidak mungkin untuk memiliki konsistensi 100% dalam penyebaran data.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mengisolasi redis aplikasi boot musim semi dan redis global sesi boot musim semi

  2. Berlangganan ke beberapa saluran dengan utas yang sama Jedis

  3. Mengirim pesan ke grup di Django Channels 2

  4. Konversi DataFrame ke RDD[(String, String)]

  5. apakah hibernate-redis mendukung cache level 2 yang dibagikan oleh instance hibernate yang berbeda?