美文网首页
redis 详解系列之三(持久化)

redis 详解系列之三(持久化)

作者: 落羽归尘 | 来源:发表于2019-08-16 07:38 被阅读0次

redis持久化简介

redis有两张持久化机制,RDB和AOF,可以有效避免因进程崩溃等情况造成数据丢失情况,下次重启时就可以利用持久化文件进行数据的恢复。

RDB持久化

RDB持久化技术是把当前数据生成快照保存起来,可以通过手动触发,也可以自动触发,手动触发的命令主要由save和bgsave,但是运行save命令的时候会阻塞进程,直到快照生成完成,数据越多,阻塞时间越久,因此要小心甚至避免使用这个命令。而bgsave,可以fork一个子进程,不影响主进程。
下面情况会自动触发RDB:

  • 使用save配置,,save m n代表m秒内有n次修改时,触发bgsave
  • 主从模式下,若从节点执行了全量复制,主节点会自动执行bgsave生成EDB文件发送给从节点
  • 执行debug reload重载时,也会触发save操作
  • 执行shutdown时,若没有开启AOF也会执行bgsave

RDB文件一般保存在dir配置的目录下,文件名可通过dbfilename配置,可以通过命令动态配置:
config set dir{newDir}和config set dbfilename{newFileName}

RDB优点

RDB文件是一个压缩的二进制文件,代表某个时间点的快照,代表着全量更新,恢复速度也快于AOF。

RDB缺点

没办法做到秒级持久化,无法实时,属于重量级操作,无法频繁操作

AOF持久化

AOF(append only file):以日志记录每次写命令,重启时执行日志里的命令进行恢复,可以做到持久化的实时性,是redis持久化的主流技术。执行过程是写入命令(追加缓存),文件同步(到磁盘),文件重写(定期压缩),重启加载(恢复)。
开启AOF需要进行配置 appendonly yes,默认是关闭的。AOF写入命令实际上先写到缓冲区,因为redis 是单线程的,如果直接写入磁盘,势必造成io阻塞,写入缓冲,系统会以一定的策略同步到文件,这个策略可以通过配置文件配置。重写机制,可以定期对过期命令清除,合并命令等方式达到减少文件所占空间的目的,重写也可以手动触发或者自动触发,重写时,会fork子进程,不会对当前进程造成阻塞。

当RDB和AOF都开启时,优先加载AOF,

相关文章

  • redis 详解系列之三(持久化)

    redis持久化简介 redis有两张持久化机制,RDB和AOF,可以有效避免因进程崩溃等情况造成数据丢失情况,下...

  • redis使用笔记

    redis持久化策略 1、数据文件.rdb 2、更新日志.aof RDB 详解 redis.conf 文件,找到 ...

  • Redis 持久化详解

    在本文中,我们将学习以下案例: 1、使用RDB 2、使用AOF 3、RDB 和 AOF 的结合使用 概要 ...

  • Redis持久化详解

    转载自:http://blog.nosqlfan.com/html/3813.html 持久化 什么是持久化,简单...

  • redis 持久化详解

    关于redis的安装和基本使用,参考本人博客: redis安装和基础入门 Redis数据库的学习与实践—Redis...

  • Redis 持久化详解

    Redis持久化 Redis 如何将数据写入磁盘(仅附加文件、快照等) 持久性是指将数据写入持久存储,例如固态磁盘...

  • redis主从、事务与锁、持久化

    分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)

  • Redis-2 数据持久化及持久化配置

    一、数据持久化 开启持久化功能后,重启redis,数据会自动通过持久化文件恢复!! 1、redis持久化 – 两种...

  • Redis之持久化

    参考 深入学习Redis(2):持久化 转载自icyfire-Redis持久化 Redis有两种持久化的方式:快照...

  • 关于redis的几件小事(六)redis的持久化

    1.redis持久化的意义 redis持久化的意义,在于 故障恢复 。如果没有对数据进行持久化,那么如果redis...

网友评论

      本文标题:redis 详解系列之三(持久化)

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