Redis持久化方式 - RDB - AOF

Redis持久化

  就是将Redis的数据从内存中保存到硬盘上
持久化之后,会在当前目录的文件夹中生成一个dump.rdb文件,该文件中就保存你内存中的数据

1. RDB持久化是什么(【***】)

   RDB(Redis DataBase) 指定频率将Redis数据持久化,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上
   Redis默认就支持该方式,你什么都不用做,Redis会自动的将内存的数据存储到硬盘中,它会先将数据写入到一个临时的文件中,等待持久化过程结束,才会用这个临时文件替换上次持久化好的文件。

默认频率如下:
     save 900 1   //900秒以内 ,如果至少有一个键的值发生变化, 则Redis自动持久化
     save 300 10  //300秒以内 ,如果至少有10个键的值发生变化, 则Redis自动持久化
     save 60 10000 //60秒以内 ,如果至少有10000个键的值发生变化, 则Redis自动持久化

可以通过修改 redis.windows.conf来更改频率
在这里插入图片描述



2. AOF持久化(Redis默认不支持该方式)

  AOF(Append Only File)持久化就是每次操作立即持久化 ,就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复
  具有实时性(一般数据不能有任何差错的情况下,修改之后会立刻保存在磁盘里面),该机制可以带来更高的数据安全性,即数据持久性
  Redis默认不支持该方式

让Redi支持AOF持久化方式方法

  1. 修改配置文件redis.windows.conf的第392: appendonly no 将no改为yes,如果有写操作(就是set等),redis就会被追加到AOF文件的末尾。

在这里插入图片描述

  1. 重启服务器
    重新打开start.bat脚本文件

  2. Redis会在当前的文件夹中自动生成一个文件:appendonly.aof文件 ,有 appendonly.aof文件出现就表示开启了AOF
    在这里插入图片描述

  3. 默认情况下,AOF是一秒钟持久化一次
    默认情况 appendfsync everysec,这种情况就算出现异常,也只是丢失1秒内的数据,如果你想要求更高,可以改为always

关键字 持久化时机(值) 描述
appendfsync always 每执行一次更新命令,就会持久化一次
appendfsync everysec 默认情况每秒钟持久化一次
appendfsync no 不持久化

3. 总结

  • RDB和AOF两种方式可以同时使用,但是在这种情况下,重启redis后,则会优先采用AOF方式来进行数据恢复,因为AOF方式的数据恢复完整度更高。
  • 如果数据非常敏感/重要,对数据的完整性要求非常高,那么就用AOF方式,因为Redis如果出现故障,可能会有较长的一段数据丢失(默认是900秒也就是5分钟的数据丢失)。而用AOF,就算出现故障,最多也就丢失1秒钟内的数据(默认1秒持久化一次,如果要求更高可以改为always,执行更新命令,就持久化)
  • 如果没有数据持久化的需求,也可以关闭RDB和AOF方式,redis将变成一个纯内存数据库

猜你喜欢

转载自blog.csdn.net/qq_40542534/article/details/108721914