Redis的快照持久化-RDB与AOF

时间:2023-03-08 23:03:55
Redis的快照持久化-RDB与AOF

Redis持久化功能

Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边。

数据保存到硬盘的过程就称为“持久化”效果。

1. snap shotting快照持久化

该持久化默认开启,一次性把redis中全部的数据保存一份存储在硬盘中,如果数据非常多(10-20G)就不适合频繁进行该持久化操作。

下方是快照持久化在本地硬盘保留的数据备份文件(redis自动生成):

Redis的快照持久化-RDB与AOF

查看快照持久化的备份频率(打开redis.conf):

  1. ################################ SNAPSHOTTING  #################################
  2. #
  3. # Save the DB on disk:
  4. #
  5. #   save <seconds> <changes>
  6. #
  7. #   Will save the DB if both the given number of seconds and the given
  8. #   number of write operations against the DB occurred.
  9. #
  10. #   In the example below the behaviour will be to save:
  11. #   after 900 sec (15 min) if at least 1 key changed
  12. #   after 300 sec (5 min) if at least 10 keys changed
  13. #   after 60 sec if at least 10000 keys changed
  14. #
  15. #   Note: you can disable saving at all commenting all the "save" lines.
  16. #
  17. #   It is also possible to remove all the previously configured save
  18. #   points by adding a save directive with a single empty string argument
  19. #   like in the following example:
  20. #
  21. #   save ""
  22. save 900 1
  23. save 300 10
  24. save 60 10000

save 900 1          #900 秒内如果超过 1 个 key 被修改,则发起快照保存

save 300 10        #300秒超过10个key被修改,发起快照

save 60 10000    #60秒超过10000个key被修改,发起快照

以上三个save的理解:

数据修改的频率非常高,备份的频率也高

数据修改的频率低,备份的频率也低

查看快照持久化文件的名字和存储位置(打开redis.conf):

  1. # The filename where to dump the DB
  2. dbfilename dump.rdb
  3. # The working directory.
  4. #
  5. # The DB will be written inside this directory, with the filename specified
  6. # above using the 'dbfilename' configuration directive.
  7. #
  8. # The Append Only File will also be created inside this directory.
  9. #
  10. # Note that you must specify a directory here, not a file name.
  11. dir ./

快照持久化 和 精细持久化  可以尽最大程度保证数据的安全:

Redis的快照持久化-RDB与AOF

2、手动发起快照持久化

Redis的快照持久化-RDB与AOF

手动发起快照持久化

Redis的快照持久化-RDB与AOF