美文网首页REDIS
3.Redis的持久化

3.Redis的持久化

作者: Stone_説 | 来源:发表于2020-07-26 23:26 被阅读0次

0.redis持久化
1.RDB模式
2.AOF模式

0.redis 持久化

redis 虽然是一个内存级别的缓存程序,即 redis 是使用内存进行数据的缓存的,但是其可以将内存
的数据按照一定的策略保存到硬盘上,从而实现数据持久保存的目的, redis 支持两种不同方式的数据
持久化保存机制,分别是 RDB 和 AOF


RDB持久化.jpg

1.RDB模式

1.1实现过程

实现的具体过程 Redis 从主进程先 fork 出一个子进程,使用写时复制机制,子进程将内存的数据保存为一个临时文件,比如 dump.rdb.temp,
当数据保存完成之后再将上一次保存的RDB文件替换掉,然后关闭子进程,这样可以保存每一次做RDB快照的时候保存的数据都是完整的,
因为直接替换RDB文件的时候可能会出现突然断电等问题而导致 RDB 文件还没有保存完整就突然关机停止保存而导致数据丢失的情况,
可以手动将每次生成的 RDB 文件进程备份,这样可以最大化保存历史数据。

基于时间的快照, 只保留当前最新的一次快照, 特点是执行速度比较快,缺点是可能会丢失从上次快照到当前快照未完成之间的数据。

1.2RDB 模式的优缺点

优点

1.RDB快照保存了某个时间点的数据,可以通过脚本执行 bgsave(非阻塞)或者 save(阻塞)命令自定义时间点北备份,可以保留多个备份,当出现问题可以恢复到不同时间点的版本。
2.可以最大化IO的性能,因为父进程在保存 RDB 文件的时候唯一要做的是 fork 出一个子进程,然后的操作都会有这个子进程操作,父进程无需任何的IO操作RDB 在大量数据比如几个G的数据,恢复的速度比AOF的快

缺点

不能时时的保存数据,会丢失自上一次执行 RDB 备份到当前的内存数据
数据量非常大的时候,从父进程 fork 的时候需要一点时间,可能是毫秒或者秒

2.AOF 模式

2.1介绍

1.按照操作顺序依次将操作添加到指定的日志文件当中,特点是数据安全性相对较高, 缺点是即使有些操作是重复的也会全部记录。
2.AOF和RDB一样使用了写时复制机制,AOF 默认为每秒钟fsync一次,即将执行的命令保存到AOF文件当中,这样即使redis服务器发生故障的话顶多也就丢失
  1秒钟之内的数据,也可以设置不同的 fsync策略,或者设置每次执行命令的时候执行 fsync,fsync 会在后台执行线程,所以主线程可以继续处理用户的
  正常请求而不受到写入 AOF 文件的 IO 影响

2.2AOF 模式优缺点

AOF的文件大小要大于 RDB 格式的文件,根据所使用的 fsync 策略(fsync 是同步内存中 redis 所有已经修改的文件到存储设备),默认是appendfsync everysec 
即每秒执行一次 fsync

相关文章

  • 3.Redis的持久化

    0.redis持久化1.RDB模式2.AOF模式 0.redis 持久化 redis 虽然是一个内存级别的缓存程序...

  • redis5.0.7

    1.redis 安装 2.redis 命令基础使用 3.redis持久化存储 https://redis.io/t...

  • 3.redis持久化策略

    1.持久化概念: redis支持 将内存中的数据持久化到磁盘中,在下次启动redis时可以将磁盘中的数据加载到内存...

  • 7.redis原理

    目录 --1.redis过期时间设置原理 --2.redis数据持久化原理 --3.redis内存回收策略 1.r...

  • 记录Redis学习

    1.Redis的数据类型 2.Redis的持久化 3.Redis事务 4.Redis发布订阅 5.Redis主从复制

  • 03-redis持久化

    Redis持久化 两种方式持久化: RDB持久化 - 全量 AOF持久化 - 增量 RDB持久化 RDB文件的生成...

  • RabbitMQ 消息持久化机制(消息不丢) --- 2022-

    RabbitMQ持久化机制分为队列持久化、消息持久化、交换器持久化。不管是持久化的消息还是非持久化的消息都可以被写...

  • Redis--(持久化,用户认证,禁用或重命名危险命令)

    01,持久化 1.RDB持久化和AOF持久化 2.RDB持久化流程图 3.配置RDB持久化 4.RDB持久化结论:...

  • iOS持久化方式有哪些

    首先这里的持久化指的是数据持久化,目前客户端的持久化也只有这一个含义。为何要持久化:iOS开发可以没有持久化,持久...

  • Docker学习(13) 卷与持久化数据

    Docker学习(13) 卷与持久化数据 卷与持久化数据——简介 数据主要分为两种:持久化和非持久化。 持久化:就...

网友评论

    本文标题:3.Redis的持久化

    本文链接:https://www.haomeiwen.com/subject/fphglktx.html