
Redis数据持久化配置Redis提供了两种持久化方式RDBRedis DataBase和AOFAppend Only File。RDB持久化这是默认的持久化方式它会在指定的时间间隔内如果满足指定数量的写操作就会将数据快照写入一个二进制文件。你可以在Redis的配置文件通常是redis.conf中设置相关参数。例如# 启用RDB持久化 save 900 1 300 10 60 10000 # 这表示在900秒内至少有1个key发生变化或者在300秒内至少有10个key发生变化又或者在60秒内至少有10000个key发生变化就会触发一次快照。 # 设置快照的文件名 dbfilename dump.rdb # 设置快照文件的保存路径默认为当前工作目录 dir ./AOF持久化与RDB不同AOF会记录每一个写命令到一个文件中。这种方式更加安全但也可能导致文件变得非常大。你同样可以在redis.conf中配置AOF。例如# 启用AOF持久化 appendonly yes # 设置AOF文件名 appendfilename appendonly.aof # 设置AOF文件的保存路径与RDB相同 dir ./底层原理RDB当满足保存条件时Redis会生成数据快照并保存到文件中。这是一个全量的数据备份可以用于数据恢复。但因为是定期生成快照所以可能会丢失一部分最近的数据。AOFRedis会将每一个写命令追加到一个文件中。这种方式更加可靠因为即使Redis重启也可以通过重新执行AOF文件中的命令来恢复数据。但因为记录了所有的写操作所以文件可能会变得很大。使用场景RDB适用于可以接受一定程度数据丢失的场景或者希望更快地进行备份和恢复的场景。因为RDB生成的是全量数据快照所以恢复起来通常比AOF要快。AOF适用于对数据安全性要求更高的场景。因为AOF记录了所有的写操作所以即使Redis突然崩溃也可以通过重新执行AOF文件中的命令来恢复到崩溃前的状态。想象你有一个记事本Redis你在上面写了很多重要的事情。但你担心如果记事本丢了或者损坏了你会忘记那些重要的事情。所以你想了个办法来保存你的记事内容。拍照保存RDB你可以每隔一段时间就给记事本拍一张照片快照。如果记事本丢了或者损坏了你就可以用最近拍的照片来找回你写的内容。但是如果你刚写完一些内容还没来得及拍照然后记事本就丢了那么这些内容就找不回来了。录音保存AOF你也可以选择用录音笔AOF文件把你写记事本的过程都录下来。这样即使记事本丢了或者损坏了你也可以根据录音笔里的内容重新写一遍记事本。但是因为你要录下所有的内容所以录音笔可能会很快就没电了文件变得很大。所以你要根据你的需要来选择用哪种方式来保存你的记事本内容哦