ROB:将当前进程中的数据生成快照保存到硬盘(因此也称作快照持久化)。
AOF:将Redis执行的每次写命令记录到日志文件中,当Redis重启时再次执行命令来恢复数据。

为达到演示的效果,我们将触发条件进行修改,设定为五秒内有两次修改即可触发(时间次数同时满足)。

修改dump文件保存路径,改成自己想统一管理的路径(也是恢复数据时的读取路径)。

建议将快照文件配上端口号,再多redis场景下容易辨别来源。

我们在五秒内队数据库进行两次修改。

此时在dumpfiles文件夹下就会发现快照文件。

save和bgsave两个命令来生成rdb文件。执行后在后台异步进行快照操作,不会发生阻塞。
该触发方式会fork一个子进程由子进程复制持久化过程。
该触发方式会fork一个子进程由子进程复制持久化过程。
允许主进程同时可以修改数据。

lastsave命令得到最后一次快照的时间戳。date -d @xxx命令将时间戳转化为日期出现。redis-check -rdb 文件路径动态停止所有RDB保存规则的方法。
redis-cli config set save
更改相应配置文件。
用户为命令来源,会有多个源头以及源源不断的请求命令。
在这些命令到达Redis Server 以后,会将其这些命令先放入AOF缓存中进行保存。这里的AOF缓冲区实际是内存中的一片区域,命令达到一定量以后再写入磁盘,避免频繁的磁盘I0操作。
AOF缓冲会根据AOF缓冲区同步文件的写回策略将命令写入磁盘上的AOF文件。
随着写入AOF内容的增加为避免文件膨胀,会根据规则进行命令的合并(又称AOF重写),从而起到AOF文件压缩的目的。
当Redis Server 服务器重启的时候会从AOF文件载入数据。

Always
每次事件循环都进行一次同步操作(写一个记一个)。
在主进程的主线程中进行,会因阻塞特性导致挂起,此期间无法服务新的请求。
但确实能够保证内存和硬盘中数据的一致性。
Everysec
No

开启aof功能。

使用默认的每秒钟写回策略。

在已经清空的数据库中加入三对键值对。

此时我们在指定的路径下可以看到生成的两个文件。

进入到appendonlydir中可以看到三条信息,证明多文件统一构成aof。
数据记录由incr文件进行。

为证明是以aof形式的恢复,我们将快照文件删除并将appendonlydir备份。不要用mv备份,否则无效,仍会记录flushdb。

通过flushdb清空数据库,一定要随时清除rdb文件。
重启数据库发现数据库仍然为空,我们将目前appendonlydir文件夹替换为之前的备份。
再次重启数据恢复,说明flush操作也会被记录。
incr文件中加入乱码模拟文件出错。redis-check-aof --fix 进行修复,清除掉不符合规则的部分。自动触发:满足配置文件中的选项。

手动触发:客户端向服务器发送bgrewriteaof命令。
在同时开启rdb 和aof 持久化时,重启时只会加载 aof 文件,不会加载 rdb 文件。
当aof文件不存在时则会去加载rdb文件。
