Redis有2种持久化机制,分别是RDB和AOF
RDB持久化机制
RDB持久化机制的原理
主要用于redis数据周期性备份使用,这种机制会对内存数据做一个快照,生成一个文件存储在磁盘上,运维人员可以将这个文件远程拷贝到其他机器上备份起来,在需要的时候可以拿来复原内存数据(人们常说的冷备)。
RDB持久化机制的优点:
读取文件中的数据还原数据比AOF快
RDB持久化机制的缺点:
由于是定时备份,所以一旦当机,从最新一次备份到宕机时的数据会丢失,不能100%保证数据不丢失
AOF持久化机制
AOF持久化机制的原理
主要用于实时备份数据,做到数据不丢失,宕机后能100%恢复。它的原理是对每一条写入命令作为日志以append-only的模式写入日志文件,所以REDIS可以通过回放AOF中的日志来重新构建完整的数据集
AOF持久化机制的优点:
可以100%持久化,保证数据不丢失
AOF持久化机制的缺点:
存在性能问题,由于需要对每条写入命令做落盘操作,增加了磁盘IO的开销
注意事项
- 我们把redis仅仅作为纯内存缓存来使用的时候,完全可以禁止所有持久化机制
- 任何技术,只有在懂它的人手里才能充分发挥它的价值,运维人员如果不懂得如何使用持久化机制,会给线上生产环境带来灾难,所以所选技术的好坏不等同于它所能发挥的价值大小,还要看使用者的水平