Wenn Sie über Kenntnisse im Bereich relationaler Datenbanken verfügen, werden Sie feststellen, dass der Redis-Befehl zwar während der Transaktion möglicherweise nicht ausgeführt werden kann, Redis jedoch dennoch die verbleibenden Teile der Transaktion ausführt Wenn Sie andere Befehle ausführen, ohne den Rollback-Vorgang auszuführen, kann dieses Verhalten für Sie merkwürdig sein.
Dieses Verhalten hat jedoch auch seine Gründe:
Dieser Befehl schlägt nur fehl, wenn der aufgerufene Redis-Befehl einen Syntaxfehler aufweist (in Redis ist dies in der Lage, solche Probleme zu erkennen). beim Platzieren dieses Befehls in der Transaktionswarteschlange) oder eine Operation an einem Schlüssel ausführen, der nicht seinem Datentyp entspricht: In der Praxis bedeutet dies, dass nur ein Programmfehler dazu führt, dass die Ausführung des Redis-Befehls fehlschlägt, was dieser Art von Fehler entspricht wird wahrscheinlich während der Programmentwicklung entdeckt und ist in einer Produktionsumgebung im Allgemeinen selten anzutreffen.
Redis verfügt über vereinfachte Funktionen innerhalb des Systems, die eine schnellere Ausführungsgeschwindigkeit gewährleisten können, da Redis nicht die Möglichkeit erfordert, Transaktionen rückgängig zu machen.
Gegen dieses Verhalten von Redis-Transaktionen gibt es einen häufigen Einwand, der besagt, dass das Programm möglicherweise Fehler (Bugs) aufweist. Sie sollten jedoch beachten, dass ein Transaktions-Rollback keine Programmfehler behebt.
Wenn beispielsweise eine Abfrage den Wert eines Schlüssels um 2 statt um 1 erhöht oder den falschen Schlüssel erhöht, hat der Transaktions-Rollback-Mechanismus keine Möglichkeit, diese Programmprobleme zu lösen. Bitte beachten Sie, dass niemand die Fehler des Programmierers selbst beheben kann, die dazu führen können, dass die Ausführung des Redis-Befehls fehlschlägt. Da es unwahrscheinlich ist, dass diese Programmfehler in die Produktionsumgebung gelangen, wählen wir bei der Entwicklung von Redis eine einfachere und schnellere Methode, ohne ein Fehler-Rollback zu implementieren.
Kurz gesagt, da es keinen Mechanismus zur Vermeidung von Fehlern gibt, die von Programmierern selbst verursacht werden, und solche Fehler normalerweise nicht in Produktionsumgebungen auftreten, hat sich Redis für die einfachere und schnellere No-Rollback-Methode entschieden Abwicklung von Transaktionen.
Empfohlen: „Redis-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonUnterstützt Redis Rollback?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!