Redis数据持久化
定义与功能
Redis的持久化是指将内存中的数据保存到磁盘上,以防止数据因服务器重启或故障而丢失。Redis提供了两种主要的持久化机制:RDB(Redis DataBase Backup) 和 AOF(Append Only File)。
①RDB持久化
原理:RDB持久化通过创建数据库的快照,将内存中的数据以二进制格式保存到硬盘上的文件中。
触发方式:
手动触发:使用SAVE或BGSAVE命令。SAVE命令会阻塞Redis服务器,直到快照创建完成;BGSAVE命令会在后台异步执行快照创建,不会阻塞服务器。
自动触发:根据配置文件中的设置,当满足一定条件(如一定时间内修改了多少次键)时,自动执行快照创建。
优缺点:
优点:RDB文件紧凑,适合备份和灾难恢复;恢复速度快。
缺点:数据不是实时持久化的,可能会丢失两次快照之间的数据。
②AOF持久化
原理:AOF持久化通过记录服务器接收到的写命令,将其追加到AOF文件中。当Redis重启时,会重新执行AOF文件中的命令来恢复数据。
触发方式:AOF持久化是默认关闭的,需要在配置文件中开启。
重写机制:为了减小AOF文件的大小,Redis提供了AOF重写功能。重写过程中,Redis会创建一个新的AOF文件,只包含恢复当前数据所需的最少命令。
优缺点:
优点:数据持久化更可靠,丢失数据的风险更小。
缺点:AOF文件通常比RDB文件大,恢复速度较慢;重写过程会占用一定的CPU资源。
③混合持久化
Redis 4.0及以上版本支持混合持久化,即同时使用RDB和AOF两种持久化机制。在AOF重写时,会先写入一个RDB快照,再记录重写期间接收到的写命令。这样既可以加快恢复速度,又可以保证数据的可靠性。
本文来自博客园,作者:it-小林,转载请注明原文链接:https://www.cnblogs.com/linruitao/p/18820118