浅谈redis持久化
Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。
RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。即Snapshot快照存储,对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。( 快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。)
AOF:Redis会将每一个收到的写命令都通过Write函数追加到文件最后,类似于MySQL的binlog。当Redis重启是会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。
当两种方式同时开启时,数据恢复Redis会优先选择AOF恢复
使用场景
在平常使用时,我们不能说哪种就是最好的,而要根据实际情况来选择,这里我提供一些选择的建议:
如果你可以允许当发生宕机时有几分钟的数据丢失,那么就使用RDB快照模式,它可以让你更快地重启redis
其余情况均推荐采用RDB+AOF的模式
没错,在使用时可以同时配置rdb和aof两种模式,redis官方也推荐我们这么做,aof为主,rdb为辅,aof记录日志,rdb做数据库备份,以及aof引擎失效后的替代