- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《Redis开发实战》RDB持久化机制
RDB数据持久化流程RDB是Redis数据库默认的数据持久化方式,其核心的特点就是将数据以快照的形式保存在磁盘上,在每一次进行数据写入时,都会fork一个新的子进程,将当前数据以二进制的形式写入到dump.rdb文件之中在RDB的处理逻辑中,只要触发了数据的备份机制,则此时会创建一个新的分支进程,同时该分支进程拥有当前主进程中的全部数据项,相当于对当前主进程中的数据做了一个完整的快照,最终也是由子进程将数据写入到二进制文件之中,由于此类的数据写入较为完整,所以称为全量备份模式。
RDB触发模式RDB处理的核心模式就是在于某一个时刻将所有的数据生成一个快照来进行最终的备份,所以就需要有一种RDB操作的触发机制来实现这一过程,对于RDB来讲提供有SAVE、BGSAVE以及自动化三种触发机制
SAVE命令手工触发该命令执行时会启用数据持久化,为了获得完整的持久化数据,该命令会阻塞当前的Redis服务进程,此时其他的客户端进程无法进行数据处理,直到RDB处理完成为止,如图所示,该种数据持久化方式会导致大范围的客户端操作延迟,所以在开发中一般不会轻易使用。
BGSAVE命令手工触发管理员发出该命令之后,Redis会在后台启动一个异步的子进程,并且在异步进程之中形成一个完整的数据快照,由异步进程负责将数据写入,此时的Redis可以正常对外提供数据服务,如图所示。此种数据持久化模式只会在子进程创建时简单的短暂的出现阻塞,随后子进程在数据写入完成后自动结束,同时由于子进程会提供有主进程相同的数据项,所以会产生额外的内存开销。
自动触发自动触发机制是在Redis进程启动时定义的,其会自动根据指定的时间间隔以及数据变化的数量自动执行BGSAVE持久化命令
RDB相关配置项No.配置项默认值描述1savesecondschanges[secondschanges...]-设置自动持久化,不设置则表示停用2stop-writes-on-bgsave-erroryes当启用RDB且最后一次保存数据失败,Redis是否停止接收数据,这样可以在灾难发生时,引起使用人员的注意。3rdbcompressionyes是否对存储到磁盘中的快照进行压缩4rdbchecksumyes使用CRC64算法来进行数据校验,开启此功能后会增加10%的性能损耗。5dbfilenamedump.rdb设置快照文件的存储名称6dir./快照文件的存放路径,该选项需要设置目录
文档评论(0)