quartz持久化是指_揭开Redis持久化神秘面纱,不夸张的说,全网NO.1

一、今天分享啥?redis持久化二、准备从哪几个方面讲?为啥需要持久化?持久化功能持久化策略有哪些?RDB持久化AOF持久化RDB与AOF比较RDB与AOF比较三、为啥需要持久化?所谓Redis持久化就是把数据保存到磁盘上再说明【为啥需要持久化?】前,先假设一种未作持久化场景:redis里有10GB数据,突然停电或者意外宕机了,再启动的时候10GB都没了!!!试想一下,持久化重要不?简单...
摘要由CSDN通过智能技术生成

ad1ea73a1b6e7750b695f505352fb9d7.png

一、今天分享啥?

redis持久化

二、准备从哪几个方面讲?

  • 为啥需要持久化?
  • 持久化功能
  • 持久化策略有哪些?
  • RDB持久化
  • AOF持久化
  • RDB与AOF比较
  • RDB与AOF比较

三、为啥需要持久化?

所谓Redis持久化就是把数据保存到磁盘上

再说明【为啥需要持久化?】前,先假设一种未作持久化场景:redis里有10GB数据,突然停电或者意外宕机了,再启动的时候10GB都没了!!!

c39b24a3e61e7d60ba661111d1b89195.png
试想一下,持久化重要不?

简单来说持久化是为了保证redis数据不会因进程退出而丢失

四、持久化策略有哪些?

  • RDB(Redis DataBase):将当前数据保存到磁盘
  • AOF(Append Only  File):将每次执行的写命令保存到磁盘

五、RDB持久化

5.1 RDB概述
  • RDB持久化是将当前进程中的数据生成快照保存到磁盘(快照持久化),保存的文件后缀为rdb
  • 当redis重启时,可以读取快照文件恢复数据

RDB保存和恢复文件,如图1和图2所示:

8e12066bb26fe11a135c9e8bd41919d6.png
5.2 RDB文件触发方式

官网描述的确实生涩哈,这里的触发其实指的是生成RDB文件,也就是保存RDB数据的方式。

有两种(两个命令):

  • save/bgsave(这种方式称为手动触发,也就是手动在命令行敲save或者bgsave命令)
  • save m n(这种方式称为自动触发,指定当m秒内发生n次变化时,会触发bgsave)
5.2.1 save和bgsave
  • save是同步命令(单车道),save命令会阻塞redis服务器的进程,直到RDB文件创建完,在该期间,redis不能处理任何的命令请求,这就是save命令最大的缺陷。
  • bgsave是异步命令(多车道),与save命令不同的是,bgsave在生成RDB文件时,会派生出一个子进程,子进程负责创建RDB文件,在此期间,主进程和子进程是同时存在的,因此不会阻塞redis服务器进程。(可用lastsave命令查看生成RDB文件是否成功)

save与bgsave对比:

命令 save bgsave
IO类型 同步 异步
是否阻塞redis其它命令
复杂度 O(n) O(n)
优点 不会消耗额外内存 不阻塞客户端命令
缺点 阻塞客户端命令 需要fork子进程,消耗内存
5.2.2 save m n

该命令可自动保存RDB文件,除了特殊情况外,我们一般是不会直接使用命令来生成RDB文件的,redis提供了自动生成RDB文件的功能。redis提供了使用配置文件配置的方式每隔一段时间自动执行一次bgsave命令,配置在redis.conf中,例如下面三条命令,只要满足了一个,bgsave就会被执行:

save 900 1
save 300 10
save 60 10000
含义:
Redis 服务器在 900 秒之内,对数据库进
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值