(05)redis的持久化RDB和AOF的配置及比较

  redis操作的数据是在内存中的,它支持两种方案将内存中的数据持久化到硬盘中,下面分别介绍。

  1、RDB方式(默认方式)

  RDB持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘。打开redis.conf,如图:

  save 900 1:表示15分钟(900秒钟)内至少1个键被更改则进行快照。

  save 300 10:表示5分钟(300秒)内至少10个键被更改则进行快照。

  save 60 10000:表示1分钟(60秒)内至少10000个键被更改则进行快照。

  这3个是默认配置,只要满足一个就会持久化,也可以自己根据需要配置(添加、减少、修改)。

  RDB快照文件的位置默认在bin下面的dump.rdb,可以修改redis.conf进行配置。dbfilename:文件名,dir:路径

  Redis启动后读取RDB快照文件,将数据从硬盘载入到内存。通常将一千万个字符串类型键、1GB的快照文件载入到内存需要花费20~30秒钟。

   2、AOF方式

  默认情况下Redis没有开启AOF(append only file)方式,可以通过修改redis.conf配置文件中的appendonly参数开启。如下图所示:

  appendonly设置为true表示开启,appendfilename:AOF文件的名称,默认是: appendonly.aof,dir:路径(与RDB方式使用一个参数)。

  开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件。

  3、两种方式的比较

  通过RDB方式实现持久化,一旦Redis异常退出,就会丢失最后一次快照以后更改的所有数据。这就需要开发者根据具体的应用场合,通过组合设置自动快照条件的方式来将可能发生的数据损失控制在能够接受的范围。如果数据很重要以至于无法承受任何损失,则可以考虑使用AOF方式进行持久化。

原文地址:https://www.cnblogs.com/javasl/p/12099045.html

时间: 2024-11-09 08:49:23

(05)redis的持久化RDB和AOF的配置及比较的相关文章

redis的持久化 rdb和aof

1.rdb 当满足条件时,redis单独会fork(创建)一个新的线程,会先将内存中的数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次已经持久化好了的文件,整个过程中,主进程是不进行任何IO操作的,确保了极高的性能,此时的主进程还可以进行读写操作.rdb数据持久化的缺点是最后一次持久化的数据可能丢失,当在最后一次持久化的时间截点内还没有持久化,此时机器宕机了或出故障了,那么最后一次的数据就没有持久化到. Fork:fork的作用是复制一个与当前进程一样的进程,新进程的所有

redis学习笔记——RDB和AOF持久化二

上一篇对RDB的源码分析是比较多的,但是AOF持久化执行进行了一些理论上的分析和概念的说明.本来想自己偷一些懒,将上篇文章中最后所给链接的AOF实现代码随便过一过算了,后来也就是在过的过程中发现自己这也看不懂那也看不懂才知道AOF的重要性和难度. 后来又花了不少时间查阅资料.结合源代码分析,对AOF的大概执行过程有了更深一些的了解,现在就将自己的理解和大家进行分享.其中肯定有理解不正确的地方,还望大神们能给予指正. AOF相关配置项 首先我们看一下redis.conf里的关于AOF的配置选项:A

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

RDB: 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里.rdb 保存的是dump.rdb文件 RDB工作原理: Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件.整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方,式要比AOF方式更加

redis持久化RDB和AOF

Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾. Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所

Redis 持久化RDB与AOF

Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾. Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所

redis学习笔记——RDB和AOF持久化

为防止数据丢失,需要将 Redis 中的数据从内存中 dump 到磁盘,这就是持久化.Redis 提供两种持久化方式:RDB 和 AOF.Redis 允许两者结合,也允许两者同时关闭. RDB 可以定时备份内存中的数据集.服务器启动的时候,可以从 RDB 文件中恢复数据集. AOF(append only file) 可以记录服务器的所有写操作.在服务器重新启动的时候,会把所有的写操作重新执行一遍,从而实现数据备份.当写操作集过大(比原有的数据集还大),Redis 会重写写操作集. 值得一提的是

Redis持久化RDB、AOF

持久化的意思就是保存,保存到硬盘.第一次接触这个词是在几年前学习EF. 为什么要持久化 redis定义:Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型.内置复制.Lua脚本.LRU收回.事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区. 可以看出redis是一个内存的数据库,但是如果re

redis持久化RDB与AOF

redis持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. redis持久化之RDB redis提供了RDB持久化的功能,这个功能可以将redis在内存中的的状态保存到硬盘中,它可以手动执行. 也可以再redis.conf中配置,定期执行. RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件被保存在硬盘中,redis可以通过这个文件还原数据库当时的状态.

进阶的Redis之数据持久化RDB与AOF

大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存.但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数据就会丢失不见了.这样的数据库并不是一个可靠的数据库. 所以数据的持久化是内存型数据库的重中之重.它不仅提供数据保存硬盘的功能,还可以借此用硬盘容量扩展数据存储空间,使得Redis的可以存储超过机器本身内存大小的数据. Redis对于数据持久化提供了两种持久化的方案,RDB与AOF.它们的原理