持久化
持久化备份与迁移
持久化方式 | 原理 | 特点 | 启用方式 |
---|---|---|---|
当符合快照条件时,会自动将内存中的所有数据进行快照并且存储到硬盘上 | 针对热数据,记录和恢复效率高,恢复不完整 | 默认启用 | |
将发送到服务端的每一条请求都记录下来 |
针对所有请求,记录和恢复效率低,恢复完整 | 配置文件 |
-
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot) 。 -
AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。AOF 文件中的命令全部以Redis 协议的格式来保存,新命令会被追加到文件的末尾。Redis 还可以在后台对AOF 文件进行重写(rewrite) ,使得AOF 文件的体积不会超出保存数据集状态所需的实际大小。Redis 还可以同时使用AOF 持久化和RDB 持久化。在这种情况下,当Redis 重启时,它会优先使用AOF 文件来还原数据集,因为AOF 文件保存的数据集通常比RDB 文件所保存的数据集更完整。你甚至可以关闭持久化功能,让数据只在服务器运行时存在。
一般来说
# The filename where to dump the DB
dbfilename dump.rdb
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis
Links
- https://cubox.pro/c/uACwYC
Redis 专题:万字长文详解持久化原理