sql >> Databasteknik >  >> NoSQL >> Redis

Den snabbare metoden att flytta redis-data till MySQL

Finns de något annat sätt att dumpa big data från Redis till MySQL?

Redis har möjligheten (med hjälp av bgsave) att generera en dump av data på ett icke-blockerande och konsekvent sätt.

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

Du kan använda Sripathi Krishnans välkända paket för att analysera en redis-dumpfil (RDB) i Python och fylla i MySQL-instansen offline. Eller så kan du konvertera Redis-dumpen till JSON-format och skriva skript på vilket språk du vill ska fylla i MySQL.

Den här lösningen är bara intressant om du vill kopiera hela data från Redis-instansen till MySQL.

Har Redis något triggersystem som jag kan använda för att undvika crons som kösystem?

Redis har inget triggerkoncept, men ingenting hindrar dig från att lägga upp händelser i Redis-köer varje gång något måste kopieras till MySQL. Till exempel istället för:

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

du kan köra:

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

MULTI/EXEC-blocket gör det atomärt och konsekvent. Sedan behöver du bara skriva en liten demon som väntar på objekt i cart_to_mysql-kön (med BLPOP-kommandon). För varje ur kö måste demonen hämta relevant data från Redis och fylla i MySQL-instansen.

Redis misslyckas med vår lagra data i fil så är det möjligt att lagra dessa data direkt i MySQL databas?

Jag är inte säker på att jag förstår frågan här. Men om du använder ovanstående lösning kommer latensen mellan Redis-uppdateringar och MySQL-uppdateringar att vara ganska begränsad. Så om Redis misslyckas kommer du bara att förlora de allra sista operationerna (i motsats till en lösning baserad på cron-jobb). Det är naturligtvis inte möjligt att ha 100% konsistens i spridningen av data dock.




  1. MongoDB - hur frågar man efter ett kapslat objekt i en samling?

  2. Hur man ogiltigförklarar delar av en hierarki (träd) av data i Redis cache

  3. Hur man får schema av mongoose databas som definieras i en annan modell

  4. Redis Anslutning via uttag på Node.js