Question: Does Redis persist data?
Answer
Yes, Redis can persist data in two ways:
- Snapshotting: Redis can periodically take a snapshot of the dataset and write it to disk. By default, Redis saves snapshots every 900 seconds (15 minutes) if at least one key has changed, and at least 300 seconds (5 minutes) if at least 100 keys have changed. Snapshots are stored in a dump.rdb file in the Redis directory.
Here's an example of how to configure snapshotting in Redis configuration file (redis.conf
):
save 900 1 # save after 900 seconds (15 min) if at least 1 key has changed
save 300 100 # save after 300 seconds (5 min) if at least 100 keys have changed
You can also take a snapshot manually by calling the BGSAVE
command or its blocking counterpart SAVE
. The former forks a child process to perform the snapshotting in the background, while the latter blocks all other Redis clients until the snapshot is complete.
- Append-only file (AOF): Redis can also log every write operation as an append-only file. The AOF contains a sequential log of all write operations, which allows Redis to reconstruct the dataset from scratch when the server starts up.
Here's an example of how to configure AOF persistence in redis.conf
:
appendonly yes # enable AOF persistence
appendfsync always # sync AOF to disk after every write operation (safe, but slow)
There are three different modes for appendfsync
:
always
: sync after every write operation (safe, but slow)everysec
: sync every second (default option)no
: never sync, let the operating system handle it (fast, but risky)
It's worth noting that AOF persistence can be slower and more resource-intensive than snapshotting, especially when the AOF file gets very large. However, it provides a more granular level of durability, as it logs every write operation to disk. If both snapshotting and AOF persistence are enabled, Redis will use the AOF to reconstruct the dataset if it exists, or fall back to the latest snapshot if not.
In conclusion, Redis can persist data through either snapshotting or AOF persistence, or both. Which method to choose depends on your particular use case and performance requirements.
Was this content helpful?
Other Common Redis Questions (and Answers)
- What is the default port used by Redis?
- How to start Redis server?
- Is Redis persistent?
- How fast is Redis?
- How to install Redis on Mac?
- How to check if Redis is running?
- How to restart Redis?
- How to install Redis on Ubuntu?
- How to stop Redis server?
- How to see Redis version?
- Does Redis have tables?
- How long does Redis store data?
Free System Design on AWS E-Book
Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.
Switch & save up to 80%
Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement. Instantly experience up to a 25X boost in performance and 80% reduction in cost