数据持久化

Redis 持久化之RDB和AOF

廉价感情. 提交于 2019-11-29 02:10:01
Redis 持久化之RDB和AOF Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识 持久化 。 RDB 详解 RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。 从配置文件了解RDB 打开 redis.conf 文件,找到 SNAPSHOTTING 对应内容 1 RDB核心规则配置(重点) save <seconds> <changes> # save "" save 900 1 save 300 10 save 60 10000 解说:save ,满足条件就将内存中的数据同步到硬盘中。官方出厂配置默认是 900秒内有1个更改,300秒内有10个更改以及60秒内有10000个更改,则将内存中的数据快照写入磁盘。 若不想用RDB方案,可以把 save "" 的注释打开,下面三个注释。 2 指定本地数据库文件名,一般采用默认的 dump.rdb dbfilename dump.rdb

redis 实战操作RDB和AOF快照持久化

故事扮演 提交于 2019-11-29 02:09:50
前言:redis是我们常用的缓存方式,今天就来介绍下两种持久化的方式吧,先科普概念,再实战操作 一、RDB Redis将某一时刻的快照(备份的数据库数据)保存成一种称为RDB格式的文件中,这种格式是经过压缩的二进制文件。redis保存和恢复文件,如图1和图2所示。 保存RDB数据的命令:有两种,一个是save,一个是bgsave,一般用的都是bgsave命令。 1、save命令:save命令会阻塞redis服务器的进程,直到RDB文件创建完,在该期间,redis不能处理任何的命令请求,这就是save命令最大的缺陷。 2、bgsave命令:与save命令不同的是,bgsave在生成RDB文件时,会派生出一个子进程,子进程负责创建RDB文件,在此期间,主进程和子进程是同时存在的,因此不会阻塞redis服务器进程。 说明:(可用lastsave命令查看生成RDB文件是否成功) RDB快照持久化数据的优缺点:     1、优点:       (1)、采用子线程创建RDB文件,不会对redis服务器性能造成大的影响;       (2)、快照生成的RDB文件是一种压缩的二进制文件,可以方便的在网络中传输和保存。通过RDB文件,可以方便的将redis数据恢复到某一历史时刻,可以提高数据安全性,避免宕机等意外对数据的影响。      (3)、适合大规模的数据恢复。      (4)

Redis 持久化之RDB和AOF

可紊 提交于 2019-11-29 02:09:37
Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识 持久化 。 RDB 详解 RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。 从配置文件了解RDB 打开 redis.conf 文件,找到 SNAPSHOTTING 对应内容 1 RDB核心规则配置(重点) save <seconds> <changes> # save "" save 900 1 save 300 10 save 60 10000 解说:save <指定时间间隔> <执行指定次数更新操作>,满足条件就将内存中的数据同步到硬盘中。官方出厂配置默认是 900秒内有1个更改,300秒内有10个更改以及60秒内有10000个更改,则将内存中的数据快照写入磁盘。 若不想用RDB方案,可以把 save "" 的注释打开,下面三个注释。 2 指定本地数据库文件名,一般采用默认的 dump.rdb dbfilename dump

redis的持久化

﹥>﹥吖頭↗ 提交于 2019-11-29 02:09:22
redis的持久化 RDB: 是什么: 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方 式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。 fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等) 数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程 RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件, 默认Save the DB on disk: save <seconds> <changes> save 900 1 或15分钟内改了1次。 save 300 10 或5分钟内改了10次, save 60 10000 是1分钟内改了1万次, 如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以 stop-writes-on-bgsave-error 默认为yes

Redis之RDB与AOF 笔记

烂漫一生 提交于 2019-11-29 02:08:56
AOF定义:以日志的形式记录每个操作,将Redis执行过的所有指令全部记录下来(读操作不记录),只许追加文件但不可以修改文件,Redis启动时会读取AOF配置文件重构数据 换句话说,就是Redis重启就会根据日志内容从头到尾执行一次来完成数据的恢复工作。 Tip:   一.RDB与AOF同时开启 默认先加载AOF的配置文件   二.相同数据集,AOF文件要远大于RDB文件,恢复速度慢于RDB   三.AOF运行效率慢于RDB,但是同步策略效率好,不同步效率和RDB相同 1.RDB持久化(以快照的方式) 策略( 默认 ):   save 900 1 (15分钟变更一次)   save 300 10 (5分钟变更10次)   save 60 10000 (1分钟变更1万次) 2.RDB默认配置文件名称:   dbfilename dump.rdb 3.表示是否开启AOF持久化:   appendonly yes(默认no,关闭) 4.AOF持久化配置文件的名称:   appendfilename "appendonly.aof" 5.AOF持久化策略(默认每秒):   appendfsync always (同步持久化,每次发生数据变更会被立即记录到磁盘,性能差但数据完整性比较好)   appendfsync everysec (异步操作,每秒记录,如果一秒钟内宕机,有数据丢失)  

Redis持久化

懵懂的女人 提交于 2019-11-29 02:08:43
Redis的持久化: 可以参考官网的说明: https://redis.io/topics/persistence 持久下主要有一下两种: 1.RDB(Redis DataBase) 2.AOF(Append Only File) RDB 1.what 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 Redis会 单独 创建(fork)一个子进程来进行持久化,会先将数据写入到 一个 临时文件 中,待持久化过程都结束了,再用这个 临时文件 替换上次 持久化好的文件 。 整个过程中, 主进程是不进行任何IO操作的 ,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方 式要比AOF方式更加的高效。 RDB的缺点是最后一次持久化后的数据可能丢失 。 2.fork fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等) 数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程。 3.rdb 保存的是dump.rdb文件 4. 如何触发RDB快照 参考配置文件的解析--->SNAPSHOTTING快照 https://www.cnblogs.com/Mrchengs/p/10053560.html a.配置文件中默认的快照配置

Redis_持久化之RDB

一个人想着一个人 提交于 2019-11-29 02:08:31
rdb - Redis DataBase 官网介绍:   在指定的时间间隔内存中的数据集快照写入磁盘,也就是行话将的Snapshot快照,它恢复时是将快照文件直接读到内存中。 是什么:   Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到内存里一个临时文件中,待持久化过程都结束了,在用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能对丢失。 Fork:   Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量,环境变量,程序计数器等)数值都是和原进程一致,但是是一个全新的进程,并作为原进程的子进程。(存在一个问题:如果原程序的数据数据特别大,fork一份) Rdb 保存的是dump.rdb文件 Save the DB on disk # after 900 sec (15 min) if at least 1 key changed # after 300 sec (5 min) if at least 10 keys changed # after 60 sec if at least 10000 keys changed # # Note: you

redis学习之——持久化RDB 和AOF

余生颓废 提交于 2019-11-29 02:08:02
RDB: 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里.rdb 保存的是dump.rdb文件 RDB工作原理: Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方 ,式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。 fork :fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等) 数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程 redis.conf配置位置: ################################ SNAPSHOTTING ################################ //快照 # # Save the DB on disk: # # save <seconds> <changes> # # Will save the DB if both the given number of seconds and the given # number

第五章:Redis持久化-AOF持久化

五迷三道 提交于 2019-11-29 02:07:49
AOF持久化 AOF全称append only file持久化:以独立日志的方式记录每次 写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的: AOF主要作用是解决了数据实时持久化的问题; 使用AOF 开始AOF需要设置appendonly yes,默认不开启。 AOF文件名通过appendonlyname配置,默认文件名为appendonly.aof: AOF工作流程操作:命令写入(append)、文件同步(sync)、文件重写(rewrite)、重启加载(reload): 所有写入命令会追加到aof_buf缓冲区中 AOF缓冲区根据对应的策略向硬盘做同步操作 随着AOF文件越来越大,需要定期对AOF文件做重写,达到压缩目的 当Redis服务器重启时,可以加载AOF文件进行数据恢复。 命令写入 采用文本协议格式具有更好的兼容性 开始AOF后,所有写入命令都包含追加操作,直接采用协议格式,避免二次处理开销 文本协议具有可读性,方便直接修改和处理 AOF通过追加到aof_buf缓冲区的方式,避免了直接追加到硬盘慢的问题,因为缓冲区时内存中的,相对于硬盘有更好的写入速度。另外,Redis可以提供多中缓冲区同步硬盘的策略; 文件同步 指缓存区数据同步到AOF文件的过程,有参数appendfsync控制; always:命令写入aof

Redis:持久化之RDB和AOF

江枫思渺然 提交于 2019-11-29 02:06:24
Redis:持久化之RDB和AOF RDB(Redis DataBase)   在指定的时间间隔内将内存中的数据集快照写入硬盘   也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。   Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。   整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进行大规模数据的回复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。 Fork   Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并做为原进程的子进程。 默认的save配置 1)15分钟一次 2)5分钟10次 3)1分钟 1万次 在redis.conf中 当满足上诉的更新次数时,rdb会自动备份到文件 dump.rdb 中 将dump.rdb移动至安装目录下启动服务可完成恢复 优缺点 优点:   1)适合大规模的数据恢复   2)对数据完整性和一致性要求不高 缺点:   1)在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改   2