Redis的持久化[面试]
redis的高性能是由于其将数据都存储在了内存中,为了使redis在重启之后还有数据,需要将数据从内存中同步到硬盘中,这个过程就称之为持久化.
1 RDB持久化机制
RDB(Redis DataBase)持久化是指在指定的时间间隔内,将内存中的数据集快照写入硬盘,写入到的是二进制文件,默认文件名是dump.rdb,这种方式默认已经开启了,不需要配置.
在redis.windows.conf配置文件中有如下配置
save 900 1
save 300 10
save 60 10000
这个配置就是rdb持久化的时机
关键字 | 时间(秒) | key的修改数量 | 解释 |
---|---|---|---|
save | 900 | 1 | 每900(15分钟)秒至少有1个key发生变化,则dump内存快照 |
save | 300 | 10 | 每300秒(5分钟)至少有10个key发生变化,则dump内存快照 |
save | 60 | 10000 | 每60秒至少有10000个key发生变化,则dump内存快照 |
2 AOF持久化机制
AOF(Append Only File)持久化机制会将每一个收到的写命令都通过write函数追加到文件中,默认文件名字是appendonly.aof,这种方式默认没有开启.
在redis.windows.conf开启AOF配置,把appendonly修改成yes即可
配置的方式
# appendfsync always
appendfsync everysec
# appendfsync no
关键字 | 持久化时机 | 解释 |
---|---|---|
appendfsync | always | 每执行一次更新命令,持久化一次 |
appendfsync | everysec | 每秒钟持久化一次 |
appendfsync | no | 不持久化 |