精华内容
下载资源
问答
  • Redis持久化机制有哪些?各有什么优缺点?
    千次阅读
    2020-02-10 10:55:13

    Redis 提供两种持久化机制: RDB 和 AOF

     

    RDBRedis DataBase:

    指用数据集快照的方式半持久化模式,记录 redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,可恢复数据

    优点:

    • 只有一个文件 dump.rdb,恢复操作简单,容灾性好
    • 性能较高,fork 子进程进行写操作,主进程继续处理命令
    • 大数据集比 AOF 的恢复效率高

    缺点:

    • 数据安全性低,RDB 是每间隔一段时间进行持久化,若期间 redis 发生故障,可能会发生数据丢失

     

    AOFAppend-only file

    指所有的命令行记录以 redis 命令请求协议的格式完全持久化存储,保存为 aof 文件

    优点:

    • 数据安全,aof 持久化可以配置 appendfsync 属性为 always,记录每个命令操作到 aof 文件中一次;通过 append 模式写文件,即使中途服务器宕机,也可以通过 redis-check-aof 工具解决数据一致性问题
    • AOF 机制的 rewrite 模式,AOF 文件没被 rewrite 之前可以进行处理,如删除文件中的 flushall 命令

    缺点:

    • AOF 的持久化文件比 RDB 大,恢复速度慢

     

     

     


    【Java面试题与答案】整理推荐

     

    更多相关内容
  • Redis持久化机制

    2021-03-29 23:30:10
    支持数据的持久化,支持 RDB 和 AOF 两种持久化方式 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离 支持丰富的数据结构,支持 String,List,Set,Zset(有序集合),Hash 五种数据结构 缺点 Redis 不...

    Redis 的优点和缺点

    优点

    • 读写性能优异
    • 支持数据的持久化,支持 RDBAOF 两种持久化方式
    • 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
    • 支持丰富的数据结构,支持 String,List,Set,Zset(有序集合),Hash 五种数据结构

    缺点

    • Redis 不具备自动容错和恢复功能。主机,从机的宕机都会导致读写请求失败,需要等待机器重启才能恢复
    • 主机宕机,宕机前有部分数据未能及时同步到从机,切换 IP 后还会引入数据不一致的问题,降低了系统的可用性

    Redis 持久化机制

    持久化数据:也就是将内存中的数据写入到硬盘里面,大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了防止系统故障而将数据备份到一个远程位置。Redis 的持久化方式: RDBAOF

    在这里插入图片描述

    RDB 快照持久化

    Redis 可以通过创建快照来获得存储在内存里面的数据。创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本( Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用

    在这里插入图片描述

    RDB 快照持久化方式

    快照持久化是 Redis 默认采用的持久化方式,在 redis.conf 配置文件中默认有此下配置

    # 在 900 秒(15分钟)之后,如果至少有 1 个 key 发生变化,Redis 就会自动触发 BGSAVE 命令创建快照
    save 900 1     
    # 在 300 秒(5分钟)之后,如果至少有 10 个 key 发生变化,Redis 就会自动触发 BGSAVE 命令创建快照      
    save 300 10 
    # 在 60 秒(1分钟)之后,如果至少有 10000 个 key 发生变化,Redis 就会自动触发 BGSAVE命令创建快照         
    save 60 10000        
    

    RDB 快照持久化优点

    • RDB 是一个非常紧凑的文件,它保存了某个时间点的数据集,非常适用于数据集的备份,比如你可以在每个小时保存一下过去 24 小时内的数据,同时每天保存过去 30 天的数据,这样即使出了问题你也可以根据需求恢复到不同版本的数据集
    • RDB 是一个紧凑的单一文件,很方便传送到另一个远端数据中心或者亚马逊的 S3 (可能加密),非常适用于灾难恢复
    • AOF 相比,在恢复大的数据集的时候,RDB 方式会更快一些

    RDB 快照持久化缺点

    • 耗时、耗性能
    • 不可控、丢失数据

    AOF 持久化

    与快照 RDB 持久化相比,AOF 持久化的实时性更好,因此已成为主流的持久化方案

    默认情况下 Redis 没有开启 AOF 方式的持久化,可以通过 appendonly 参数开启

    # 开启 AOF 持久化
    appendonly yes       
    

    开启 AOF 持久化后每执行一条会更改 Redis 中的数据的命令,Redis 就会将该命令写入硬盘中的 AOF 文件。AOF 文件的保存位置和 RDB 文件的位置相同,都是通过 dir 参数设置的,默认的文件名是 appendonly.aof

    AOF 的运行原理-创建

    在这里插入图片描述

    AOF 的运行原理-恢复

    在这里插入图片描述

    AOF 快照持久化方式

    Redis 的配置文件中存在三种不同的 AOF 持久化方式,它们分别是

    # 每次有数据修改发生时都会写入 AOF 文件,速度缓慢但是最安全
    appendfsync always    
    # 每秒钟同步一次,显示地将多个写命令同步到硬盘。AOF 默认使用的
    appendfsync everysec  
    # 让操作系统决定何时进行同步,速度最快
    appendfsync no        
    

    为了兼顾数据和写入性能,用户可以考虑 appendfsync everysec 选项(AOF 默认使用) ,让 Redis 每秒同步一次 AOF 文件,Redis 性能几乎没受到任何影响。而且这样即使出现系统崩溃,用户最多只会丢失一秒之内产生的数据。当硬盘忙于执行写入操作的时候,Redis 还会优雅的放慢自己的速度以便适应硬盘的最大写入速度

    RDBAOF 的对比选择

    - RDB AOF
    启动优先级
    文件大小
    恢复速度
    数据安全性丢数据根据策略决定
    展开全文
  • 1. Redis使用的持久化机制(存储数据的方式) (1)RDB 1) RDB:是redis的默认持久化机制。 RDB相当于照快照,保存的是一种状态。如果你有几十G数据 ,它能把它压缩为 几KB的快照 2)快照是默认的持久化方式,这种方式...
  • redis持久化机制 redis提供了两种持久化机制: 快照(snapshot):保存某一时刻的数据状态 AOF(appen only file):将写命令记录到日志文件中 快照 默认的持久化机制 保存以.rdb结尾的文件,于是也被称为RDB方式...

    redis持久化机制

    redis提供了两种持久化机制:

    • 快照(snapshot):保存某一时刻的数据状态
    • AOF(appen only file):将写命令记录到日志文件中

    快照

    • 默认的持久化机制
    • 保存以.rdb结尾的文件,于是也被称为RDB方式

    快照生成方式

    • 客户端执行BGSAVE、SAVE指令

    • 服务器配置自动触发

      900 1

      300 10

      60 10000

    BGSAVE

    当接收到客户端的BGSAVE指令后,redis会调用fork来创建一个子进程,然后子进程负责将快照写入磁盘中,而父进程则继续处理命令请求。

    fork:当一个进程创建子进程的时候,底层操作系统会创建该进程的一个副本。在类UNIX系统中,创建子进程的操作会被优化:刚开始的时候,父子进程共享同一份内存,只有在父或子进程对内存进行了写操作后,共享才会结束

    SAVE

    整个进程都会进行创建快照的操作,在创建快照完成之前redis处于阻塞状态

    AOF

    • 开启AOF持久化,修改 appendonly yes
    • 修改appendfilename "appendonly.aof"指定生成文件名称

    日志追加频率

    always 【谨慎使用】
    • 每个redis写命令都同步到硬盘。
    • 如果同一时间内大量涌入写命令,会引发严重的写入放大问题(向硬盘写入大量小文件导致硬盘寿命缩减等问题)
    everysec 【推荐】
    • 每秒执行一次同步。最多只会丢失1秒内的数据
    no 【不推荐】
    • 由操作系统决定何时同步。看命,如果一次性堆积大量写操作然后同步,也会导致redis处于阻塞状态

    set a 100 执行一万次,即使最终的结果只有一条,但是aof文件中却会保存所有指令。所以日久天长,aof文件可能越来越大,所以就有了AOF重写

    AOF重写

    • 客户端方式触发重写

      执行BGREWRITEAOF命令 不会阻塞redis服务

    • 服务器配置方式自动触发

      修改redis.conf中的两个选项:

      • auto-aof-rewrite-percentage 100

      • auto-aof-rewrite-min-size 64mb

      如果这么设置,当启用了AOF持久化时,当AOF文件体积>64MB,且上一次重写之后体积增加了100%时,就自动重写一次

      如果重写过于频繁,则可以将auto-aof-rewrite-percentage设置大一些

    AOF重写原理

    AOF重写,并没有读取旧有的aof文件,而是将整个内存中的数据库用命令的方式写成一个新的aof文件,用来替换就有的aof文件。

    重写流程:

    1、redis调用fork,产生子进程,子进程生成快照,将快照中的数据信息以写入命令的方式存入临时文件

    2、父进程继续处理来自客户端的请求,并将这些请求中所有写命令存入旧aof中的同时,再存入一份到缓存中

    3、子进程将快照中的内容以命令形式全部写入临时文件后,通知父进程,然后父进程将刚才缓存的新命令追加到临时文件

    4、父进程将临时文件替换旧有的aof文件。后面收到的命令也开始向新的aof文件中追加
    在这里插入图片描述

    展开全文
  • Redis持久化机制-浅入

    2021-01-07 12:00:00
    Redis持久化就是将数据存入磁盘,以保证数据在redis在崩溃时减小对数据的影响,redis提供两种持久化方式。 1.快照(snapshotting)方式RDB,RDB是redis默认的持久化方式,可以再redis.conf中配置其存储频度,如图: ...
  • redis持久化机制

    2022-04-05 13:13:42
    redis持久化模式

    redis持久化机制的原理

    一、两种实现redis持久化的机制,RDB模式和AOF模式

    ①RDB模式
    1.有三种具体的实现方式,save,bgsave,修改redis.conf配置
    2.save方式会占用redis的进程,在save期间redis不可以处理其他的命令会造成redis拥堵,会替换掉老的dump.rdb文件
    3.bgsave会fork出redis的一个子进程,在后台异步进行快照操作,并不会造成redis的拥堵,会替换掉老的dump.rdb文件
    4.自动同步,即修改redis.conf中的配置数据
     eg:save:这里是用来配置触发 Redis的 RDB 持久化条件,也就是什么时候将内存中的数据保存到硬盘。比如“save m n”。表示m秒内数据集存在n次修改时,自动触发bgsave。
    

    #####②AOF模式

    1.将redis的写命令记录在AOF的文件中
    2.AOF有三种机制
      2.1 always:当redis数据发生变化时即同步
      2.2 everysec : 每秒钟同步,无论数据有无更改
      2.3 no:从不同步
    

    RDB和AOF的优缺点

    1.RDB优点:适合大数据集的回复,fork子进程不会造成进程拥堵
    2.RDB缺点:RDB快照是一次全量备份,存储的是内存数据的二进制序列化形式,存储上非常紧凑。当进行快照持久化时,会开启一个子进程专门负责快照持久化,子进程会拥有父进程的内存数据,父进程修改内存子进程不会反应出来,所以在快照持久化期间修改的数据不会被保存,可能丢失数据
    3.AOF优点:AOF每隔一秒同步一次数据,最多只会丢失1s钟的数据
    4.AOF缺点:aof文件要比rdb文件要大

    ###RDB和AOF如何选择
    image.png

    一起来学习Golang吧

    golang

    展开全文
  • Redis持久化机制之RDB

    2022-02-15 19:20:16
    Redis持久化机制有两种:RDB持久化和AOF持久化。因为Redis是一个内存数据库,如果没有合适的持久化机制,那么一旦服务器进程退出,服务器中的数据库状态也会消失。本章介绍RDB持久化机制。 RDB持久化 RDB持久化,...
  • 概述 Redis是内存数据库,如果不将...Redis会单独创建( fork )一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行
  • redis持久化机制

    千次阅读 2022-04-04 14:29:34
    1:为什么做redis持久化机制 redis 的数据是存在内存中的,服务宕机后,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。 2:redis持久化机制是什么...
  • RDB方式的持久化redis内存直接把snapshot保存到文件系统。将整个内存数据存放到dump.rdb file 中。配置如下: [allen@localhost src]$ cd redis-5.0.3 [allen@localhost redis-5.0.3]$ vi redis.conf 配置...
  • 本篇文章继续学习redis框架应对缓存失效,以及持久化机制及内存管理出现的问题,以及提供的解决方案及思想。 概述 在redis中缓存失效的原因主要是重启导致数据失效, 解决方案 RDB、AOF持久化机制。以及aof中为...
  • Redis系列之Redis持久化机制

    千次阅读 2021-12-23 13:15:22
    Redis持久化机制 为什么要持久化 如果Redis再次访问时,发现Redis的数据是空的,就会形成缓存穿透。更重要的是,因为Redis的数据是空的,所以客户端想要访问的key都没有,就会造成大量的请求就会瞬间打到数据库上...
  • Redis持久化机制,RDB,AOF,混合持久化
  • 工作常用,面试必问的Redis持久化机制AOF
  • 1.RDB 2.AOF
  • Redis在我们日常开发中是必不可少的,但是有可能会造成数据的丢失,因此就有了持久化机制,而 Redis持久化机制也是面试中的高频问题,决定整理一下;如有错误还请个位指正!
  • 这就是今日总结的Redis持久化机制。 何为持久化? 正常redis数据是保存在内存中的,若遇到redis宕机或者需要重启等场景,数据就会丢失,所以需要将数据存储,将数据备份到磁盘的过程就叫做redis持久化。 redis安装...
  • Redis持久化机制

    千次阅读 2020-09-28 14:21:09
    Redis提供两种持久化机制,一种RDB持久化(默认) 另一种是AOF(append only file)持久化。 RDB是什么? 原理是redis会单独创建(fork)一个与当前进程一模一样的子进程来进行持久化,这个子进程的所有数据...
  • 缓存-redis持久化机制(RDB和AOF)

    万次阅读 多人点赞 2021-07-17 11:32:18
    文章目录前言一、Redis中RDB和AOF两种持久化机制概要介绍二、RDB(Redis DataBase)机制详解1.手动触发-save2.手动触发-bgsave3.自动触发-bgsave4.RDB 的优点5.RDB 的缺点三、AOF(Append Only File)机制详解1.持久化...
  • redis持久化机制 redis服务器宕机,内存数据是会丢失了,为了保证数据不丢失需要对数据做备份,所备份就是持久化 RDB 和AOF RDB(默认使用):做当前内存数据的全本快照,将数据以二进制形式存储在硬盘上 RDB就是将...
  • 一文读懂Redis持久化机制 我们日常开发中,使用Redis的最普遍场景就是用作缓存。也就是把后端数据库的数据存储在内存中,然后从内存读取数据,响应速度非常的快。并且还会降低数据库的访问压力。但是这里也有一个...
  • redis持久化配置

    2022-03-01 18:03:05
    redis有两种持久化方式:RDB和AOF。 RDB配置方式 默认情况下,是快照RDB的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb redis.conf默认配置: save 900 1 save 300 10 save ...
  • Redis 持久化机制 概念: 通过持久化机制(RDB、AOF)把内存中的数据同步到硬盘中来保证数据持久化;当 redis 重启后把硬盘文件重新加载到内存,就能达到恢复数据的目的。 实现: 单独创建fork的一个子进程,将父...
  • Redis持久化机制AOF,RDB(默认)。 1.RDB RDB他的本质上是全量同步。下面我们看一下RDB同步方案的图解 在redis中一共有两个进程一个是主进程它是专门监听我们redis请求的,另一个是fork子进程专门处理RDB数据同步的...
  • Redis持久化面试题

    2021-11-16 18:28:52
    Redis持久化面试题1.redis中有哪些持久化方式?2.RDB的工作原理3.RDB触发机制4.RDB持久化的缺点5.AOF的工作原理6.开启AOF7.AOF触发机制8.RDB和AOF的优缺点9.RDB和AOF的优先级 1.redis中有哪些持久化方式? ​ redis...
  • Redis 持久化机制

    2022-04-04 18:20:06
    Redis 持久化机制 1.RDB Redis 的RDB 是把内存数据全量持久化到硬盘; 非阻塞的RDB :Redis 在持久化的过程中还是对外服务的,也就是说他的持久化过程是非阻塞的,下面就是讨论其内部是如何实现的;fork 出一个子...
  • 小记一手 【Redis持久化机制

    千次阅读 2022-03-14 00:45:40
    Redis持久化机制·(建议收藏)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,572
精华内容 34,628
关键字:

redis持久化机制

友情链接: zbwpnh.rar