-------------------------------------RDB-------------------------------
1 SNAPSHOTTING 快照 (会有一个子进程,生成临时文件dump.rdb,只要做了update操作就会根据redis.conf配置的时间在生成一份临时文件替换上一份的临时文件)
优劣势
适合大规模的数据恢复
对数据完整性和一致性要求不高
在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改
fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑
dbfilename dump.rdb 备份的文件名称
stop-writes-on-bgsave-error yes 是否开启保存停止写的操作
rdbcompression yes 文件过大是否压缩
rdbchecksum yes 对数据是否进行校验
dir ./ 保存路径
save 900 1 (15分钟内修改1次 保存)
save 300 10 (5分钟内修改10次 保存)
save 60 10000 (1分钟内修改10000次 保存)
--立即保存
save(阻塞) bgsave(非阻塞)
--校验rdb文件,
redis-check-rdb --fix
关闭rdb的方法 1注释掉save 2 save ""
----------------------------------------AOF-------------------------------------
日志的形式记录写的操作,记录redis的指令,不记录读的操作。只是追加文件,不可以改写文件。重启redis之后通过重新执行日志文件的命令来回复备份数据
###########rewrite查看Linux服务器命令-free内存, df磁盘
appendonly.aof文件
appendonly no 默认是关闭aof
appendfilename "appendonly.aof" aof文件名称
# appendfsync always 同步备份 性能消耗较大,每次write后都会调用fsync
appendfsync everysec 每秒调用一次fsync
# appendfsync no 性能最好 write后不会有fsync调用,由操作系统自动调度刷磁盘
no-appendfsync-on-rewrite no 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no
auto-aof-rewrite-percentage 100 当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程。
auto-aof-rewrite-min-size 64mb 当前AOF文件启动新的日志重写过程的最小值,避免刚刚启动Reids时由于文件尺寸较小导致频繁的重写。
aof-load-truncated yes 指redis在恢复时,会忽略最后一条可能存在问题的指令
aof-use-rdb-preamble no AOF重写产生的文件将同时包含RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内存则用于记录最近发生了变化的数据,
这样Redis就可以同时兼有RDB持久化和AOF持久化的优点
--校验aof文件,当aof文件不正确的话,会导致redis启动失败
redis-check-aof --fix