1、RDB:
快照形式,在指定的时间间隔内将内存中数据集写入磁盘中,保存到dump.rdb的二进制文件中,数据需要恢复时从磁盘中将快照文件直接读到内存中
redis.conf文件中配置,如图:
900秒内修改一次则save一次;
运作:copy-on-write:redis调用fork()方法生成子进程---写数据到rdb文件---写完后将新rdb文件替换旧rdb文件
用处:备份数据时间紧凑,保存了redis某个时间点上的整个数据集,适合用于备份和灾难恢复:
RDB 可以最大化 Redis 的性能:父进程在保存 RDB 文件时唯一要做的就是 fork 出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无须执行任何磁盘 I/O 操作。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
但数据量大,会丢失数据
2、AOF:
日志形式记录每个写操作,将每个写操作追加到aof文件中,redis启动时读取该文件进行重新构建数据
redis.conf文件中进行配置,如图:
appendonly no:不开启aof持久化方式
appendfilename "appendonly.aof":写入的aof文件名称
更新的方式:
1.appendfsync always:每次修改都调用fsync命令将修改内容更新到aof文件中,慢,安全
2.appendfsync everysec:每秒调用fsyn命令更新,足够快,故障时只丢失1秒数据
3.appendfsync no:不执行更新,依靠操作系统进行刷新,更快,不安全