计算机网络/计算机科学与应用/系统/运维/开发

Redis 持久化

Redis提供了不同级别的持久化方式:

RDB持久化方式能够在指定的时间间隔能对数据进行快照存储

AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令

来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾

redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大

如果只希望数据在服务器运行的时候存在,也可以不使用任何持久化方式


也可以同时开启两种持久化方式,这种情况下,当redis重启的时候会优先载入

AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比rdb文件保存

的数据集要完整


RDB的优点:

RDB是一个非常紧凑的文件,保存了某个时间点的数据集,非常实用数据集的备份


Redis持久化配置及命令:

默认情况下,Redis将数据库快照保存在名为dump.rdb的二进制文件中,称为snapshotting


工作方式:

当redis需要保存dump.rdb文件时,服务器执行:

redis调用forks. 同时拥有父进程和子进程

子进程将数据集写入到一个临时RDB文件中

当子进程完成对新RDB文件的写入时,redis用新rdb文件替换原来的rdb文件,并删除旧的rdb文件


RDB的配置:

在配置文件中已经预设3个条件:

save 900 1   # 15分钟内至少有一个键被更改

save 300 10  # 5分钟内至少有10个键被更改

save 60 10000 # 1分钟内至少有10000个键被更改


默认的rdb文件路径是当前目录,文件名是:dump.rdb,可以在配置文件中修改路径和文件名

分别是dir和dbfilename


dir  ./ # rdb文件存储路径

dbfilename dump.rdb #rdb文件名


RDB文件的压缩:

rdb文件是通过压缩,可以通过配置rdbcompression参数来禁用压缩,默认是开启压缩的


#save

#bgsave 后台保存


读书和赚钱都是一个人最好的修行,前者使人不惑,后者使人不屈,二者结合,便可不困于世,不流于俗

评论

^