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

Jaká je nejlepší strategie pro synchronizaci dat Redis do MySQL?

Nemusíte nic hackovat;)

Nejsem si úplně jistý, proč potřebujete data na mysql. Kdybych to věděl, možná by se našla vhodnější odpověď. V každém případě můžete jako obecnou odpověď použít upozornění redis keyspace

Můžete se přihlásit k odběru příkazů HSET, HMSET, HDEL a DEL na svých klíčích, takže budete dostávat upozornění pokaždé, když je klíč smazán nebo je nastavena nebo odstraněna hodnota hash.

Všimněte si, že pokud zmeškáte jakékoli oznámení, budete mít nekonzistenci. Takže jednou za čas můžete pomocí příkazu SCAN projít všechny své klíče a zkontrolovat na mysql, jestli je třeba je aktualizovat.

Další strategií by mohlo být udržování dvou samostatných struktur. Jeden by byl hash s hodnotami a druhý by byl ZSET všech hodnot seřazených podle časového razítka aktualizace. Nejlepším způsobem, jak udržet obě struktury aktuální, by bylo napsat dva nebo tři lua skripty (insert/update a delete), které by fungovaly s hash a zset atomicky.

Pak můžete jen pravidelně dotazovat ZSET na prvky s časovým razítkem vyšším, než je vaše poslední synchronizační operace, získat všechny klíče, které byly aktualizovány (zahrnovalo by to smazané klíče, pokud si nechcete ponechat druhý ZSET výhradně pro ně) a pak jen získat všechny prvky pomocí klíče a synchronizovat je s mysql.

Doufám, že vám to bude fungovat!



  1. Formátování ISODate z Mongodb

  2. Nasazení MongoDB pomocí Dockeru

  3. Programově nastavit převodník MongoDb

  4. RDBTools získal RedisLabs!