redis持久化
Redis提供两种主要的持久化方案,用于确保数据在内存数据库中的持久性:
1、RDB(Redis DataBase)快照持久化:
RDB是Redis的一种快照持久化方式,它在特定时间间隔内创建数据库的快照,并将其写入磁盘上的文件。这个快照包含了数据库的所有数据。
RDB持久化非常适合用于备份和数据恢复。它允许你在需要时将数据库还原到特定的快照状态。
你可以通过在Redis配置文件中设置 save 参数来配置何时触发RDB快照的条件和频率。
手动执行RDB快照可以使用 SAVE 命令或 BGSAVE 命令。
2、AOF(Append-Only File)文件持久化:
AOF持久化是通过记录Redis写命令的方式来实现的。这意味着AOF文件包含了可以用于还原数据库状态的写命令历史。
AOF持久化通常在每个写操作后都追加相应的命令到AOF文件,以确保数据的实时持久性。
AOF持久化适合用于数据恢复,因为它包含了数据库的完整历史记录。
你可以通过在Redis配置文件中启用 appendonly 参数来启用AOF持久化。你还可以配置 appendfilename 和 appendonlydir 以及 appendfsync 参数以控制AOF文件的名称、存储目录和同步方式。
手动执行AOF文件重写可以使用 BGREWRITEAOF 命令。
这两种持久化方式各有优点和适用场景,你可以根据应用程序的需求选择其中之一或同时使用两种方式。通常情况下,AOF持久化用于提供更细粒度的数据恢复,而RDB持久化用于全量备份和快速恢复。合理配置和管理这些持久化方式可以确保Redis数据的持久性和可靠性。
dir #rdb文件存储路径,aof也是根据这个位置存放
save 900 1
save 300 10
save 60 10000
默认情况下,Redis在900秒内至少有1个键被更改、在300秒内至少有10个键被更改、在60秒内至少有10000个键被更改时执行RDB快照。
dir确定文件存储数据位置
1.appendonly no/yes #关闭/开启AOF功能
2.appendfilename "appendonly.aof" #AOF写入数据的文件名
3.appenddirname "appendonlydir" #AOF写入数据文件夹名
appenddirname can't be a path, just a dirname
4.appendfsync always/everysec/no #AOF刷盘策略(每次/每秒/由操作系统自行判断)
always:每个写操作都会导致AOF缓冲区的内容立即写入磁盘,保证了最高级别的数据持久性。这是最安全的选项,但也会导致性能开销。
everysec:AOF缓冲区的内容将每秒同步一次到磁盘。这是默认的选项,可以在一定程度上折衷性能和持久性。
no:Redis不会自动同步AOF缓冲区的数据到磁盘,而是依赖于操作系统或管理员手动执行同步操作。这会提供最高性能,但也会增加数据丢失的风险。