Ich schlage vor, Sie lesen darüber auf http://redis.io/topics/persistence . Grundsätzlich verlieren Sie die garantierte Persistenz, wenn Sie die Leistung erhöhen, indem Sie nur die In-Memory-Speicherung verwenden. Stellen Sie sich ein Szenario vor, in dem Sie INSERT in den Speicher einfügen, aber bevor es auf der Festplatte gespeichert wird, wird die Stromversorgung unterbrochen. Es kommt zu Datenverlust.
Redis unterstützt sogenannte „Snapshots“. Dies bedeutet, dass zu bestimmten Zeitpunkten (z. B. jede volle Stunde) eine vollständige Kopie des Speichers erstellt wird. Wenn Sie zwischen zwei Schnappschüssen die Stromversorgung verlieren, verlieren Sie die Daten aus der Zeit zwischen dem letzten Schnappschuss und dem Absturz (muss kein Stromausfall sein..). Redis tauscht Datensicherheit gegen Leistung, wie es die meisten NoSQL-DBs tun.
Die meisten NoSQL-Datenbanken verfolgen ein Konzept der Replikation zwischen mehreren Knoten, um dieses Risiko zu minimieren. Redis gilt eher als schneller Cache statt als Datenbank, die Datenkonsistenz garantiert. Daher unterscheiden sich seine Anwendungsfälle typischerweise von denen echter Datenbanken:Sie können beispielsweise Sitzungen, Leistungsindikatoren oder was auch immer darin mit unübertroffener Leistung und ohne wirklichen Verlust im Falle eines Absturzes speichern. Aber die Verarbeitung von Bestellungen/Kaufhistorien und so weiter wird als Aufgabe für traditionelle Datenbanken angesehen.