Redis数据持久化

定义与功能

Redis的持久化是指将内存中的数据保存到磁盘上,以防止数据因服务器重启或故障而丢失。Redis提供了两种主要的持久化机制:RDB(Redis DataBase Backup) 和 AOF(Append Only File)。

RDB持久化

原理RDB持久化通过创建数据库的快照,将内存中的数据以二进制格式保存到硬盘上的文件中。

触发方式

手动触发:使用SAVE或BGSAVE命令。SAVE命令会阻塞Redis服务器,直到快照创建完成;BGSAVE命令会在后台异步执行快照创建,不会阻塞服务器。

自动触发:根据配置文件中的设置,当满足一定条件(如一定时间内修改了多少次键)时,自动执行快照创建。

优缺点

优点RDB文件紧凑,适合备份和灾难恢复;恢复速度快。

缺点:数据不是实时持久化的,可能会丢失两次快照之间的数据。

AOF持久化

原理AOF持久化通过记录服务器接收到的写命令,将其追加到AOF文件中。当Redis重启时,会重新执行AOF文件中的命令来恢复数据。

触发方式:AOF持久化是默认关闭的,需要在配置文件中开启。

重写机制:为了减小AOF文件的大小,Redis提供了AOF重写功能。重写过程中,Redis会创建一个新的AOF文件,只包含恢复当前数据所需的最少命令。

优缺点:

优点:数据持久化更可靠,丢失数据的风险更小。

缺点:AOF文件通常比RDB文件大,恢复速度较慢;重写过程会占用一定的CPU资源。

混合持久化

Redis 4.0及以上版本支持混合持久化,即同时使用RDB和AOF两种持久化机制。在AOF重写时,会先写入一个RDB快照,再记录重写期间接收到的写命令。这样既可以加快恢复速度,又可以保证数据的可靠性。

posted @ 2025-04-11 10:27  it-小林  阅读(7)  评论(0)    收藏  举报