Redis är inte vanligtvis distribueras som ett "hållbart" datalager (i betydelsen "D" i ACID.), även med journalföring. De flesta användningsfall offrar avsiktligt lite hållbarhet i utbyte mot snabbhet.
Lagringsläget "lägg endast till fil" kan dock valfritt konfigureras för att fungera på ett hållbart sätt, till priset av prestanda. Det kommer att behöva betala för en fsync() vid varje modifiering. För att konfigurera detta, ställ in dessa två alternativ i din .conf-fil:
appendonly yes
appendfsync always
Från dokumenten:Hur hållbar är den endast tilläggsfilen?
Kontrollera redis.conf, du kan konfigurera hur många gånger Redis ska fsync() data på disken. Det finns tre alternativ:
- Fsync() varje gång ett nytt kommando läggs till i append-loggfilen. Mycket mycket långsamt, mycket säkert.
- Fsync() en gång per sekund. Snabbt nog, och du kan förlora 1 sekunds data om det inträffar en katastrof.
- Aldrig fsync(), lägg bara dina data i händerna på operativsystemet. Den snabbare och osäkrare metoden.
(Observera att standardinställningen för appendfsync i konfigurationsfilen som skickas med Redis post-2.0.0 är everysec
, och inte always
.)