Redis 数据持久化方案
一、持久化方案
- RDB(Redis DataBase):指定的时间间隔内保存数据快照(SNAPSHOTTING),fork出子进程,之后再由子进程完成这些持久化的工作;
- AOF(Append Only File):先把命令追加到操作日志的尾部,保存所有的历史操作(APPEND ONLY MODE)
- 优缺点
RDB优点:
- 只存储一个文件,空间占用小,容易进行灾难故障恢复;
- 性能最大化,fork出子进程,之后再由子进程完成这些持久化的工作,避免进程io。
- 相比于AOF机制,如果数据集很大,RDB的启动效率会更高。
RDB缺点:
因为是特定条件下进行一次持久化(每隔一段时间),就可能会导致一旦redis崩溃,再次回复时,可能会导致部分数据丢失。
注:如果设置的备份时间间隔较短,比较耗服务器性能,如果设置的备份时间间隔较长,又可能会导致数据恢复时部分数据丢失
AOF优点:
AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。
数据非常完整,故障恢复丢失数据少。
AOF缺点:
- 因为AOF模式要把每一步redis命令都记录下来,所以就导致文件的体积会很大。
- 根据同步策略的不同,AOF在运行效率上往往会慢于RDB。总之,每秒同步策略的效率是比较高的,同步禁用策略的效率和RDB一样高效
二、配置RDB
2.1 编辑 redis.conf
注:使用whereis redis命令查看redis安装在哪个位置,然后进入redis安装目录的etc目录下,编辑redis.conf。
2.1 默认备份的时间间隔
save 900 1
save 300 10
save 60 10000
2.1 默认备份的文件名称
The filename where to dump the DB
dbfilename dump.rdb
三、配置AOF
将redis.conf 配置文件中的appendonly 参数改为yes 后,则redis开始启动AOF数据持久化模式