redis

Redis的持久化机制

2022-08-31  本文已影响0人  右耳菌

1. 持久化介绍

Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。

2. 持久化的方式

  • RDB持久化
    RDB持久化方式能够在指定的时间间隔对你的数据进行快照存储
  • AOF (append only file)持久化
    AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据

3. RDB持久化方式

  • BGSAVE调用fork来创建一个子进程,子进程负责将快照写入磁盘,而父进程仍然继续处理命令。
  • SAVE 执行SAVE命令过程中,不再响应其他命令。
#900秒之内至少一次写操作
save 900 1
# 300秒之内至少发生10次写操作
save 30010
#60秒之内发生至少10000次
save 60 10000

注意以上的内容中,比如 save 3 2 表示三秒内如果有两次操作则进行保存,但是实际的情况是,如果第1秒内进行了一次操作,然后这期间的3秒内没有进行操作,这时候没有进行保存,但是如果后续第5秒时又执行了一次操作,此时是会进行保存的,也就是说会每个周期内的操作次数其实是会累计下来的,直到触发了保存之后才会清空置0。所以相对于说save 3 2 表示3秒内如果有两次操作则进行保存,说成3秒进行一次检查,如果累计数值大于或等于2则进行保存,然后将累计数值置0,更为准确。

4. AOF持久化方式

appendonly yes
#每次有数据修改发生时都会写入AOF文件
appendfsync always
#每秒钟同步一次,该策略为AOF的缺省策略
appendfsync everysec
#从不同步。高效但是数据不会被持久化
appendfsync no

如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

上一篇下一篇

猜你喜欢

热点阅读