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

Hvad er den bedste strategi til at synkronisere Redis-data til MySQL?

Du behøver ikke hacke noget;)

Jeg er ikke helt sikker på, hvorfor du har brug for dataene på mysql. Hvis jeg vidste det, ville der måske være et mere passende svar. Under alle omstændigheder, som et generisk svar, kan du bruge redis-tasterumsmeddelelser

Du kan abonnere på kommandoerne HSET, HMSET, HDEL og DEL på dine nøgler, så du vil få en notifikation, hver gang en nøgle slettes, eller en hashværdi indstilles eller fjernes.

Bemærk, at hvis du går glip af en notifikation, vil du have en inkonsekvens. Så en gang imellem kan du bare bruge SCAN-kommandoen til at gennemgå alle dine nøgler og tjekke på mysql, om de skal opdateres.

En anden strategi kunne være at opretholde to separate strukturer. Den ene ville være hashen med værdierne, og den anden ville være et ZSET af alle værdierne sorteret efter tidsstempel for opdatering. Den bedste måde at holde begge strukturer ajour på ville være at skrive to eller tre lua-scripts (indsæt/opdater og slet), som ville fungere på hashen og zset atomisk.

Så kan du bare periodisk forespørge ZSET for elementer med et tidsstempel, der er højere end din sidste synkroniseringsoperation, få alle de nøgler, der blev opdateret (det ville inkludere slettede nøgler, medmindre du vil beholde et andet ZSET udelukkende for dem) og derefter bare hent alle elementer med nøgle og synkroniser til mysql.

Håber det vil virke for dig!



  1. HBase regioner fusionere

  2. Hvad er MongoDB, og hvordan virker det?

  3. Sådan forbinder du lokal Mongo-database til docker

  4. NodeJS + MongoDB:Henter data fra indsamling med findOne ()