Redis数据库的数据持久化机制有两种:RDB和AOF。
RDB : 内存中的数据集快照写入磁盘 优势 1). 备份和恢复方便, 一个数据库只有一个持久化文件 2). 性能最大化, 在开始持久化之前主进程会fork出一个子进程, 专门用于保存数据集快照 3). 与AOF相比, 持久化文件小, 易恢复 劣势 1). 可能会丢失数据(两次备份之间的数据) 2). 若数据集比较大, 备份时会耗费比较多的资源,可能会使服务进程中断几百毫秒 持久化配置 1). 快照文件保存在 dump.rdb 中, 文件目录和文件名都可以在redis.conf中配置 2). save 60 10 : 60秒内有10个key发生变化, 就触发快照操作 3). dbfilename : 备份的文件名 4). dir : 备份的目录位置
AOF(append only file) : 以日志的形式记录服务器的每一次写操作 优势 1). 数据安全性更高 , 丢失数据的可能性小 2). 采用append模式, 即使备份时宕机, 也不会影响之前的文件 3). 若日志量过大, redis会自动启动rewrite对日志进行瘦身. 4). AOF日志结构清晰, 易于理解, 易于恢复 劣势 1). 相比RDB文件, AOF文件比较大, 恢复较慢 2). 由于同步机制不同, AOF运行效率上要慢于RDB
特点
1).同步策略:每修改同步,每秒同步,不同步 2.可瘦身,可以配置或者手动瘦身文件 这个rewriteaod可以手动操作,直接rewriteaod即可。这样就直接瘦身了。(也就是比如,a的值赋值1,再赋值2,再赋值3,,,,,这里的每一个 步骤都会记录在aof文件里,rewrite之后呢,就只会记录最后一条了)