Redis ist ein Schlüssel/Wert-Speicher auf Steroiden, nicht eine relationale Datenbank.
Wie kann die Datenintegrität sichergestellt werden? Gibt es Methoden, um die Integrität zu gewährleisten?
Redis unterstützt verschiedene Persistenzoptionen von "nicht sicher aber sehr effizient" bis zu "sicher aber nicht sehr effizient". Siehe Weitere Informationen:
Redis unterstützt auch einen Master-Slave-Replikationsmechanismus, um die Daten im Fall eines kompletten Knotenausfalls zu schützen.
Eine einzige Redis-Instanz bietet immer Datenkonsistenz (im Sinne des CAP-Theorems, nicht im Sinne von ACID).
Ist Redis Primärschlüssel? oder Alternativen
Redis ist ein Schlüssel/Wert-Speicher. Alle Gegenstände haben einen Schlüssel. Es gibt kein Konzept des primären oder sekundären Schlüssels.
Fremdschlüssel? Referentielle Integrität?
Dies sind relationale Konzepte. Redis ist keine relationale Datenbank. Fremdschlüssel bedeutet nichts (es gibt kein Tabellenkonzept mit Redis). Die referenzielle Integrität wird nicht von Redis verwaltet und muss von der Clientanwendung erzwungen werden.
Wie werden die ACID-Eigenschaften implementiert?
Sie sollten nicht implementiert werden, da Redis keine Transaktionsdatenbank ist. Bei Redis gibt es keinen Rollback-Mechanismus.Jedoch in der Bezeichnung der ACID-Eigenschaften:
- Atomicity und Konsistenz können für eine Gruppe von Befehlen mit einem serverseitigen Lua Script
- Isolation wird immer auf Kommandoebene garantiert garantiert werden, und können auch für eine garantiert werden Gruppe Befehl MULTI/EXEC Block oder einen Lua-Skript mit
- Haltbarkeit gewährleistet werden kann, wenn AOF (mit systematischer fsync) aktiviert wird
'Haltbarkeit gewährleistet werden kann, wenn AOF (mit systematischer fsync) aktiviert wird' < - ist deine Quelle dafür der Antirez Link (toller Link danke für dass btw) Wissen Sie, welche Art von Effekt auf die Leistung hat dies? dh bringt es redis wieder in die gleiche Liga wie SQL/Mongo? – wal
Der Effekt auf die Leistung ist katastrophal. Jede RDBMS- oder NoSQL-Engine mit einem Write-Ahead-Protokoll wird in dieser Konfiguration wesentlich besser abschneiden als Redis. Dies liegt daran, dass Redis single-threaded ist. In dieser Konfiguration wird fsync direkt in der Ereignisschleife ausgeführt. Also alle fsync blockiert systematisch alle Verbindungen. –
'Das liegt daran, dass Redis single-threaded ist. In dieser Konfiguration wird fsync direkt in der Ereignisschleife ausgeführt. Sind Sie sich dessen sicher? Der Redis Persistence-Link sagt: "AOF muss auch fork(), aber Sie können einstellen, wie oft Sie Ihre Logs neu schreiben wollen, ohne Kompromisse bei der Haltbarkeit einzugehen." –