Jag föreslår att du läser om detta på http://redis.io/topics/persistence . I grund och botten förlorar du den garanterade uthålligheten när du ökar prestandan genom att endast använda lagring i minnet. Föreställ dig ett scenario där du INSERT i minnet, men innan det blir kvar till disken tappar strömmen. Det kommer att bli dataförlust.
Redis stöder så kallade "snapshots". Detta innebär att den kommer att göra en fullständig kopia av vad som finns i minnet vid vissa tidpunkter (t.ex. varje hel timme). När du tappar strömmen mellan två ögonblicksbilder kommer du att förlora data från tiden mellan den senaste ögonblicksbilden och kraschen (behöver inte vara ett strömavbrott..). Redis byter datasäkerhet mot prestanda, som de flesta NoSQL-DB:er gör.
De flesta NoSQL-databaser följer ett koncept med replikering mellan flera noder för att minimera denna risk. Redis anses mer vara en snabb cache istället för en databas som garanterar datakonsistens. Därför skiljer sig dess användningsfall vanligtvis från de för riktiga databaser:Du kan till exempel lagra sessioner, prestandaräknare eller vad som helst i den med oöverträffad prestanda och ingen verklig förlust i händelse av en krasch. Men att behandla beställningar/köphistorik och så vidare anses vara ett jobb för traditionella databaser.