Redis 持久化方式 AOF与RDB简述

1. 持久化基本流程:

(1)客户端向服务端发送写的操作 (数据在客户端的内存中)

(2)服务端接收到写请求的数据 (数据在服务端的内存中)

(3)服务端调用write这个系统调用,将数据往磁盘上写 (数据在系统内存的缓冲区中)

(4)操作系统将缓冲区中的数据转移到磁盘控制器上 (数据在磁盘缓存中)

(5)磁盘控制器将数据写到磁盘的物理介质中 (数据真正落到磁盘上)

2. redis持久化方式 RDB & AOF

2.1 默认持久化方式 RDB:

定义: 一定时间间隔内,将内存中的数据集以快照的形式持久化到磁盘中(二进制文件, 默认文件名dump.rdb)

触发机制: save(执行期间会阻塞redis其他命令)、bgsave(快照的同时可以相应客户端请求,阻塞只存在fork阶段)、自动触发(在redis.conf中配置持久化配置)

 

 2.2 AOF:

定义:将每一个写的命令追加到一个日志文件中

重写原理:日志文件会越来越大,redis提供了bgrewriteaof命令,将内存中的数据以命令的形式保存到临时文件中,同时fork一个新的进程来重写文件

触发机制:每修改同步always(完整性好、性能差)、每秒同步everysec(有可能丢失数据,一般采用这种)、不同步no(从不同步)

 

2.3 aof 和 rdb的比较

 

 

转:https://baijiahao.baidu.com/s?id=1654694618189745916&wfr=spider&for=pc 

posted @ 2020-12-04 11:32  会飞的猿  阅读(116)  评论(0编辑  收藏  举报