redis中数据的持久化

redis中数据的持久化分为两种:1.rdb,2.aof

1.rdb

  在指定的时间内将内存中的数据集快照写入磁盘,恢复时,直接将快照文件读取到内存中。

  rdb保存的是dump.rdb文件(默认)。

  在redis配置文件中可以设置保存的文件名称,以及每次更新文件的间隔时间

如果在开发过程中遇到非常重要的数据想要立刻快照到文件中,则使用save命令(同步,其他先阻塞)或者bgsave命令(异步)即可

2.aof

  以日志的形式来记录每个操作,将redis执行过的所有指令记录下来,aof默认保存的时候appendonly.aof文件,要开启aof则需要设置redis.conf配置文件中的appendonly 为yes

  如果aof文件有损坏,可以使用redis-check-aof --fix进行修复

  aof开启后,当redis重启时会优先执行aof文件来恢复数据

 AOF采用文件追加方式,文件会越来越大为避免出现此种情况,新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集.可以使用命令bgrewriteaof

AOF文件持续增长而过大时,会fork出一条新进程来将文件重写(也是先写临时文件最后再rename),遍历新进程的内存中数据,每条记录有一条的Set语句。重写aof文件的操作,并没有读取旧的aof文件,而是将整个内存中的数据库内容用命令的方式重写了一个新的aof文件,这点和快照有点类似

Redis会记录上次重写时的AOF大小,默认配置是当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发

猜你喜欢

转载自www.cnblogs.com/zhlblogs/p/9817003.html