Redis持久化策略
1. RDB持久化策略
RDB是redis持久化数据到磁盘的策略
将内存以快照形式保存Redis数据库中的数据的方式,就是某一时刻,将Redis内存中的数据全量备份到磁盘,RDB就是redis DataBase的缩写
备份会不会阻塞主线程
Redis是单线程数据处理,Redis提供了两个命令来生成RDB,一个是save
一个是bgsave
- save 保存:会阻塞Redis主线程,直到RDB文件备份完成为止,在这个期间,Redis不能处理客户端的任何请求
- bgSave 保存:不会阻塞主线程,会创建一个子线程,单独我负责RDB文件的数据备份,
RDB的优势和劣势
- 优势
- RDB文件紧凑,全量备份,适合进行备份和灾难恢复
- 生成RDB文件的时候,Redis主进程会分叉一个子进程来处理保存数据,主进程不需要进程IO操作
- RDB在恢复文件的时候要比AOP速度快
2. AOF持久化策略
AOF持久化策略,以文件的形式存储Redis内存中的数据,他的文件格式是AOF,他存储的数据是客户端交给Redis执行的写命令
因为AOF是在文件中追加写入,由于IO操作的阻塞性,会导致主线程挂起,在写入的时间中无法服务新的请求,因而吞吐量收到影响
为了解决上述的问题,Redis并不会立即将数据写入到硬盘中,