search
HomeDatabaseRedisThere are two persistence methods in Redis. Why are two persistence methods needed?

There are two kinds of persistence (AOF and RDB) in Redis. This article will take you to understand these two kinds of persistence, look at their advantages and disadvantages, and introduce why Redis needs two kinds of persistence. Persistence, hope it helps everyone!

There are two persistence methods in Redis. Why are two persistence methods needed?

Two persistence methods of Redis

As we all know, Redis provides two persistence methods: AOF and RDB. Let’s start with Let’s briefly review.

RDB persistence

  • RDB persistence, is to save the state of the database at the current point in time to the disk, also known as Snapshot persistence.
  • RDB can be triggered manually or executed periodically according to the server configuration.
  • The file generated by RDB is a compressed binary file, through which the database can be restored to the state at that point in time.
  • Redis provides the foreground RDB persistence command SAVE and the background RDB persistence command BGSAVE. When executed in the foreground, other Redis commands will be blocked, and when executed in the background , Redis can also continue to process the client's command request.
  • In the RDB binary file, key-value pair data is saved, using compressed custom encoding with verification. It can be converted into readable through the od command.
  • During master-slave replication, the initialized full replication uses RDB files.

[Related recommendations: Redis video tutorial]

AOF persistence

  • AOF persistence , the full name is Appen Only File, which means the appended persistence method, in which write commands are saved instead of data.
  • The AOF persistence process is divided into three steps: command appending, file writing, and file synchronization.
  • Command appending: Every time the Redis server executes a write command, it will append the write command to the end of the aof_buf buffer in the server status in the AOF protocol format.
  • File writing: In Redis, before each event loop ends, the flushAppendOnlyFile function is called to write the contents of the aof_buf buffer to the AOF file.
  • File synchronization: Synchronizationsync refers to whether the file is directly synchronized to the disk when it is written to the operating system buffer. Through configuration, you can choose three synchronization methods: immediate synchronization, synchronization every second, and no active synchronization but controlled by the operating system. About file I/O buffering: https://www.litreily.top/2018/10/25/io-cache/
  • Redis gives priority to using AOF files to recover data.
  • Because AOF files store commands and are not compressed, their size is larger than RDB files.
  • AOF files can be rewritten regularly using BGREWRITEAOF to reduce duplicate commands, expired commands, merged commands, etc.
  • AOF files support background rewriting, which is implemented in the form of fork sub-process. The child process has a copy of the data of the server process, ensuring data security without using locks. In addition, AOF is used to rewrite the buffer to solve data inconsistency.

The advantages and disadvantages of the two kinds of persistence

The advantages of RDB

  • The file size is small and suitable for copying for cold backup

  • Compared with AOF, the backup and recovery speed is faster

Disadvantages of RDB

  • lost a lot of data

  • fork the child process to do BGSAVE, which consumes a certain amount of memory resources

Advantages of AOF

  • Less data loss

  • Added write buffer, No need for addressing, fast

  • append-only, no need for disk addressing, high efficiency

Disadvantages of AOF

  • The file size is large

  • AOF needs to write aof_buf every time and open AOF After persistence, QPS will be slightly reduced

Why does Redis need two kinds of persistence?

After the above review, we can see that there are obvious differences between RDB and AOF persistence.

  • Stored content: RDB stores data at a certain point in time; AOF stores executed write commands.

  • File size: RDB files are smaller; AOF files are larger.

  • Writing method: RDB can use the foreground/background writing method; AOF uses the method of storing the command in the buffer every time a write command is executed, and can be rewritten regularly.

  • Data loss: RDB loses all data between the crash and the last RDB synchronization; AOF does not lose or loses 1s or more according to the refresh method configured in the I/O buffer. A few seconds of data.

Based on these comparisons, we can see thatRDB persistence is more suitable for saving data at a point in time, and copying it to other places during master-slave replication or full data off-site disaster recovery , and AOF persistence has less data loss, so it is more suitable as a local backup and as a fault recovery when Reids hangs up and restarts. This is my understanding of why Redis requires two persistence methods. For more programming-related knowledge, please visit:

Introduction to Programming

! !

The above is the detailed content of There are two persistence methods in Redis. Why are two persistence methods needed?. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:掘金社区. If there is any infringement, please contact admin@php.cn delete
Redis vs databases: performance comparisonsRedis vs databases: performance comparisonsMay 14, 2025 am 12:11 AM

Redisoutperformstraditionaldatabasesinspeedforread/writeoperationsduetoitsin-memorynature,whiletraditionaldatabasesexcelincomplexqueriesanddataintegrity.1)Redisisidealforreal-timeanalyticsandcaching,offeringphenomenalperformance.2)Traditionaldatabase

When Should I Use Redis Instead of a Traditional Database?When Should I Use Redis Instead of a Traditional Database?May 13, 2025 pm 04:01 PM

UseRedisinsteadofatraditionaldatabasewhenyourapplicationrequiresspeedandreal-timedataprocessing,suchasforcaching,sessionmanagement,orreal-timeanalytics.Redisexcelsin:1)Caching,reducingloadonprimarydatabases;2)Sessionmanagement,simplifyingdatahandling

Redis: Beyond SQL - The NoSQL PerspectiveRedis: Beyond SQL - The NoSQL PerspectiveMay 08, 2025 am 12:25 AM

Redis goes beyond SQL databases because of its high performance and flexibility. 1) Redis achieves extremely fast read and write speed through memory storage. 2) It supports a variety of data structures, such as lists and collections, suitable for complex data processing. 3) Single-threaded model simplifies development, but high concurrency may become a bottleneck.

Redis: A Comparison to Traditional Database ServersRedis: A Comparison to Traditional Database ServersMay 07, 2025 am 12:09 AM

Redis is superior to traditional databases in high concurrency and low latency scenarios, but is not suitable for complex queries and transaction processing. 1.Redis uses memory storage, fast read and write speed, suitable for high concurrency and low latency requirements. 2. Traditional databases are based on disk, support complex queries and transaction processing, and have strong data consistency and persistence. 3. Redis is suitable as a supplement or substitute for traditional databases, but it needs to be selected according to specific business needs.

Redis: Introduction to a Powerful In-Memory Data StoreRedis: Introduction to a Powerful In-Memory Data StoreMay 06, 2025 am 12:08 AM

Redisisahigh-performancein-memorydatastructurestorethatexcelsinspeedandversatility.1)Itsupportsvariousdatastructureslikestrings,lists,andsets.2)Redisisanin-memorydatabasewithpersistenceoptions,ensuringfastperformanceanddatasafety.3)Itoffersatomicoper

Is Redis Primarily a Database?Is Redis Primarily a Database?May 05, 2025 am 12:07 AM

Redis is primarily a database, but it is more than just a database. 1. As a database, Redis supports persistence and is suitable for high-performance needs. 2. As a cache, Redis improves application response speed. 3. As a message broker, Redis supports publish-subscribe mode, suitable for real-time communication.

Redis: Database, Server, or Something Else?Redis: Database, Server, or Something Else?May 04, 2025 am 12:08 AM

Redisisamultifacetedtoolthatservesasadatabase,server,andmore.Itfunctionsasanin-memorydatastructurestore,supportsvariousdatastructures,andcanbeusedasacache,messagebroker,sessionstorage,andfordistributedlocking.

Redis: Unveiling Its Purpose and Key ApplicationsRedis: Unveiling Its Purpose and Key ApplicationsMay 03, 2025 am 12:11 AM

Redisisanopen-source,in-memorydatastructurestoreusedasadatabase,cache,andmessagebroker,excellinginspeedandversatility.Itiswidelyusedforcaching,real-timeanalytics,sessionmanagement,andleaderboardsduetoitssupportforvariousdatastructuresandfastdataacces

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment