Heim  >  Artikel  >  Datenbank  >  Eine kurze Analyse der Prinzipien und Mängel von AOF in Redis

Eine kurze Analyse der Prinzipien und Mängel von AOF in Redis

青灯夜游
青灯夜游nach vorne
2021-11-10 10:26:272589Durchsuche

Dieser Artikel wird Ihnen helfen, AOF in Redis-Persistenz zu verstehen, das Prinzip von AOF und die Mängel von AOF vorzustellen. Ich hoffe, dass er für alle hilfreich sein wird!

Eine kurze Analyse der Prinzipien und Mängel von AOF in Redis

AOF

Eine kurze Analyse der Prinzipien und Mängel von AOF in Redis

  • Oben haben wir erwähnt, dass eine der Persistenzmethoden in rRedis RDB ist Redis中的一种持久化方式就是RDB
    • 此文我们来讲另一种实现方式那就是AOF

    • AOF是通过只记录Redis写入命令的追加式日志文件

    • AOF日志存储的因为是顺序指令,所以在Redis宕机后,内部"重走一遍老路",就可以达到恢复数据的目的

【相关推荐:Redis视频教程

AOF原理

  • 每次我们执行写入命令的时候,Redis都会把命令追加到AOF文件里面
    • 实际是将内容写到内存的一个缓存汇总

    • 所以Redis需要实时的去调用Linux提供的fsync函数每次将制定文件从内核缓存写到磁盘

    • 因为如果实时的去调用函数是非常我们也可以通过改变配置参数来调整调用fsync函数的频率

重写

  • 如果一直追加AOF文件,日志会变得越来越大
    • 所以Redis内部实现了「重写」,用来压缩文件
    • 首先因为很多的key-value早就已经国企,或者很多值不断被更新,那么日志还存这些无用的数据显然是可以进行优化的
    • 所以创建一个子进程对内存进行遍历
    • 遍历成一个新的文件日志,所以实现了只有最新的值才需要存储在AOF日志中
    • 我们可以使用下图的命令来开启重写,当然也可以设置成自动执行AOF

Eine kurze Analyse der Prinzipien und Mängel von AOF in Redis

AOF

In diesem Artikel lassen wir uns Sprechen Sie über eine andere Implementierungsmethode, nämlich AOF
  • AOF ist eine Nur-Anhänge-Protokolldatei, die nur Redis-Schreibbefehle aufzeichnet
  • AOF-Protokolle speichern
  • sequentielle Anweisungen
, so dass nach dem Ausfall von Redis der Zweck der Datenwiederherstellung erreicht werden kann, indem intern „der alte Pfad erneut durchlaufen“ wird

🎜🎜【Verwandte Empfehlungen: Redis-Video-Tutorial🎜】🎜

🎜AOF-Prinzip🎜🎜🎜🎜Jedes Mal, wenn wir einen Schreibbefehl ausführen, hängt Redis den Befehl an die AOF-Datei an🎜🎜🎜 Es ist tatsächlich ein Cache-Zusammenfassung, die den Inhalt in den Speicher schreibt🎜🎜🎜🎜, daher muss Redis die von Linux bereitgestellte fsync-Funktion jedes Mal in Echtzeit aufrufen Zeit Schreiben Sie die angegebene Datei aus dem Kernel-Cache auf die Festplatte🎜🎜🎜🎜Denn wenn es sehr wichtig ist, die Funktion in Echtzeit aufzurufen, können wir auch die Häufigkeit des Aufrufs der Funktion fsync durch Ändern anpassen die Konfigurationsparameter🎜🎜🎜🎜🎜

🎜Rewrite🎜

🎜🎜Wenn Sie weiterhin AOF-Dateien anhängen, wird das Protokoll immer größer 🎜🎜Daher implementiert Redis code> intern das „Umschreiben“, um Dateien zu komprimieren. 🎜🎜 Erstens, weil viele Schlüsselwerte bereits in Staatsbesitz waren oder viele Werte ​werden ständig aktualisiert, die Protokolle speichern immer noch diese nutzlosen Daten. Offensichtlich kann es optimiert werden🎜🎜Erstellen Sie also einen Unterprozess, um den Speicher zu durchlaufen.🎜🎜Traverse in ein neues Dateiprotokoll, sodass nur der neueste Wert im gespeichert werden muss AOF log🎜🎜 Wir können den folgenden Befehl verwenden, um das Umschreiben zu aktivieren. Natürlich können wir ihn auch so einstellen, dass AOF automatisch ausgeführt wird.🎜🎜🎜🎜🎜Eine kurze Analyse der Prinzipien und Mängel von AOF in Redis🎜

🎜AOFNachteile 🎜🎜🎜🎜🎜Jedes Durchlaufen des gesamten Speichers bringt eine Menge zusätzlichen Leistungsaufwand für das System mit sich🎜🎜🎜🎜Das Wiederherstellen von Daten ist jedes Mal ein langer Prozess und ein langer Schreibvorgang Der Kernel auf die Festplatte verbraucht jedes Mal E/A-Leistung🎜 🎜🎜🎜Weitere Programmierkenntnisse finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Prinzipien und Mängel von AOF in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen