前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剖析Redis持久化之RDB方式

剖析Redis持久化之RDB方式

作者头像
Marser
发布2018-06-25 16:58:25
9630
发布2018-06-25 16:58:25
举报
文章被收录于专栏:智能合约智能合约

最近在阅读《Redis设计与实现》这本书,书中关于Redis的实现原理,做了相对详细的介绍与说明。

Marser整理了Redis持久化之RDB方式的原理、redis.conf配置方式、数据还原操作及RDB方式的特点。下面Marser就来做详细的介绍。

1、RDB持久化原理

RDB持久化既可以通过命令行手动执行,也可以通过redis.conf配置选项定期执行,该功能可以将某个时间点上的数据库中的键值对保存到一个rdb文件中,默认为dump.rdb。

2、RDB持久化命令

Redis中有两个命令可以用于生成RDB文件,一个是save,另一个是bgsave。这两个命令都可以通过命令行来手动执行。下面分别来介绍下这两个命令。

save命令

执行save命令时,Redis服务器主进程会执行保存工作,所以save命令会阻塞Redis服务器进程。在Redis服务器进程阻塞期间,服务器不能处理任何从客户端发送过来的命令请求,直至RDB文件创建完毕。即save命令是做同步操作

此种方式

bgsave命令

bgsave命令和save命令不同,在执行bgsave命令时,Redis服务器会派生出一个子进程,由这个子进程来负责执行数据保存工作,并创建RDB文件,而Redis服务器进程(父进程)则继续处理从客户端发送过来的命令请求。即bgsave命令是做异步操作

3、RDB持久化之redis.conf配置

因为bgsave命令可以在不阻塞服务器进程的情况下执行,所以Redis允许用户通过配置redis.conf中的"save"选项,让Redis服务器每隔一段时间自动执行一次bgsave命令。

配置举例如下:

代码语言:javascript
复制
save  5     1       #Redis服务器在5秒之内,对数据库进行了至少1次修改,就执行bgsave命令
save  300   10      #Redis服务器在300秒之内,对数据库进行了至少10次修改,就执行bgsave命令
save  60    10000   #Redis服务器在60秒之内,对数据库进行了至少10000次修改,就执行bgsave命令

只要满足上述三个条件中的任意一个,bgsave命令就会被执行。

配置如下图所示:

如下图所示,即表示Redis服务器在满足触发条件后,自动执行bgsave操作:

4、RDB文件还原

在Redis服务器(redis-server)启动时会自动执行。如下图所示(红框标出):

所以Redis并没有专门用于载入RDB文件的命令,只要Redis服务器在启动时检测到RDB文件存在,它就会自动载入RDB文件。

需要注意的是:Redis服务器在载入RDB文件期间,会一直处于阻塞状态,直到载入工作完成为止。

5、RDB持久化特点

说是特点,其实也可以理解为缺点。RDB持久化每次都是将内存中的全量数据写入到磁盘中,并不是只同步增量数据。如果数据量大,并且写操作比较多的情况下,必然会引起大量的磁盘IO操作,可能会严重影响服务器性能。另一方面,因为RDB持久化是每隔一定时间自动执行保存操作,所以如果Redis意外宕机,就会丢失最后一次持久化的所有修改。

Redis持久化之RDB方式就此介绍完毕,欢迎各位拍砖。下一节将介绍Redis持久化之AOF方式,敬请期待。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:201505-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、RDB持久化原理
  • 2、RDB持久化命令
  • save命令
  • bgsave命令
  • 3、RDB持久化之redis.conf配置
  • 4、RDB文件还原
  • 5、RDB持久化特点
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档