sql >> Database teknologi >  >> NoSQL >> Redis

Den hurtigere metode til at flytte redis-data til MySQL

Er der nogen anden måde at dumpe big data fra Redis til MySQL?

Redis har mulighed for (ved at bruge bgsave) at generere et dump af dataene på en ikke-blokerende og konsekvent måde.

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

Du kan bruge Sripathi Krishnans velkendte pakke til at parse en redis dump-fil (RDB) i Python og udfylde MySQL-instansen offline. Eller du kan konvertere Redis-dumpen til JSON-format og skrive scripts på ethvert sprog, du vil udfylde MySQL.

Denne løsning er kun interessant, hvis du vil kopiere de komplette data fra Redis-instansen til MySQL.

Har Redis noget triggersystem, som jeg kan bruge til at undgå crons som køsystem?

Redis har intet trigger-koncept, men intet forhindrer dig i at poste begivenheder i Redis-køer, hver gang noget skal kopieres til MySQL. For eksempel i stedet for:

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

du kunne udføre:

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

MULTI/EXEC-blokken gør den atomær og konsistent. Så skal du bare skrive en lille dæmon, der venter på elementer i cart_to_mysql-køen (ved hjælp af BLPOP-kommandoer). For hvert element, der er sat ud af kø, skal dæmonen hente de relevante data fra Redis og udfylde MySQL-instansen.

Redis fejler vores lagerdata i filen, så er det muligt at gemme disse data direkte i MySQL-databasen?

Jeg er ikke sikker på, at jeg forstår spørgsmålet her. Men hvis du bruger ovenstående løsning, vil forsinkelsen mellem Redis-opdateringer og MySQL-opdateringer være ret begrænset. Så hvis Redis fejler, vil du kun miste de allersidste operationer (i modsætning til en løsning baseret på cron-job). Det er selvfølgelig ikke muligt at have 100 % konsistens i udbredelsen af ​​data.




  1. MongoDB Database Deployment Automation

  2. MongoDB jsonSchema validering yderligere egenskaber

  3. Mongooses standard løftebibliotek er forældet i MEAN stack

  4. Stream fra en mongodb-markør til Express-svar i node.js