文章字数:267,阅读全文大约需要1分钟
redis
一般是将数据保存在内存中,以提高读取写入的效率。但是一旦断电,数据也会全部丢失。数据持久化就是将内存中的数据写入到磁盘,保证数据的完整性。
RDB(默认方式)
定时将内存中的快照保存成二进制的副本
(bgsave命令触发,父进程创建子线程执行fork操作)
优点
- 二进制文件恢复速度快
缺点
- 开销大,不能做到实时
AOF
开启后,redis
每执行一次修改数据的命令,都会把命令添加到AOF文件中,根据文件就能进行恢复。
优点
- 实时持久化
缺点
- 恢复速度慢
- 文件体积会无限制变大(时间越久执行的命令越多),需要定期整理
最佳实践
RDB
和AOF
都开启,恢复时先用RDB
,剩余部分再使用AOF
恢复。AOF
中的命令也只用保存上一次RDB
之后进行的操作就行了