Redis总结二(持久化 )

Redis持久化

Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,服务器的数据库状态也就会消失,所以Redis提供了持久化的功能

持久化流程

  • 客户端向服务端发送写操作(数据在客户端的内存中)
  • 数据库服务端收到写请求的数据(数据在服务端的内存中)
  • 服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区)
  • 操作系统将缓冲区中的数据转移到磁盘控制器上(数据在磁盘缓存中)
  • 磁盘控制器将数据写到磁盘的物理介质中(数据真正落到磁盘上)

以上的过程是在理想条件一个正常的保存流程,可能会遇到的故障

  • Redis数据库发生故障,只要在上面的第三步执行完毕,那么就可以持久化保存,剩下的两步由操作系统替我们完成。
  • 操作系统发生故障,必须上面5步都完成才可以。

RDB( Redis DataBases)内存快照

RDB是Redis默认的额持久化方式
内存快照指内存中的数据在某一时刻的状态记录,类似于拍照,将瞬间的形象记录下来。
Redis将某一时刻到的数据以文件的形式记录到磁盘上,也就是快照,如果内存宕机了,就可以将磁盘中的快照数据加载到内存,即数据的可靠性得到了保证

Redis提供了两个命令来生成RDB文件,分别save和bgsave
save:在主线程中执行,会导致阻塞

在这里插入图片描述
执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取

bgsave

创建出一个子进程,专门用来写入RDB文件,避免主线程的阻塞,是RDB默认的配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值