Myluzh Blog

Strive to become a dream architect.

Redis持久化配置(RDB&AOF)

发布时间: 2023-10-20 文章作者: myluzh 分类名称: Redis


0x01 RDB(Redis DataBase)

RDB是通过生成数据快照的方式来保存数据。
1. 修改redis.conf配置
# 通过save参数来配置RDB。格式为 "save [秒数] [次数]"。
# 在1小时内,只要有一次修改,就会进行一次快照
save 3600 1
2. 手动触发快照
使用save命令可以手动触发快照。但请注意,在执行save命令时,Redis将进入阻塞状态,无法处理任何请求。
127.0.0.1:6379 > save
3. 创建子进程进行保存(这个过程还是会有一定的性能损耗,因为fork一个子进程也是需要时间)
# 使用bgsave命令可以创建一个子进程来保存数据,以避免阻塞主进程。
127.0.0.1:6379 > bgsave

0x02 AOF(Append Only File)

为了解决RDB无法做到秒级快照的问题,Redis引入了AOF持久化方式。AOF通过记录每个操作的日志来保存数据。当Redis重启时,会重新执行AOF中的操作来恢复数据。
# 在redis.conf中开启AOF
appendonly yes
0x03 区别
虽然AOF(Append Only File)是一种比RDB(Redis DataBase)更实时的持久化方式,但它们各自有自己的优点和适用场景。
AOF的优点是它记录了每个写操作的详细日志,因此在恢复数据时更加安全,且可以提供秒级的持久化。另外,AOF文件是可读的,易于分析和恢复。
而RDB则是在特定时间间隔内生成数据库的快照,将数据以二进制格式保存到磁盘上。相比AOF,RDB文件更加紧凑,对于大规模数据集来说,恢复速度更快,占用的磁盘空间也更小。此外,RDB的恢复过程会比AOF更快,因为它只需要读取一个文件而不是逐条执行写操作。
因此,尽管AOF在实时性方面更好,但RDB在节约磁盘空间和恢复速度方面有优势。在实际应用中,根据具体需求和场景选择合适的持久化方式是比较明智的选择。通常,可以使用AOF与RDB相结合,以提高数据的安全性和可恢复性。

标签: redis EDB AOF

发表评论