1、啥是Redis持久化

持久化就是把内存中的数据存到硬盘中去,防止进程退出后数据丢失。

分析:redis 如果仅仅只是将数据缓存在内存里面,如果 redis 宕机了再重启,内存里的数据将全部丢失。为防止上述问题发生,就得用 redis 的持久化机制,将数据写入内存的同时,异步的将数据写入磁盘文件里,进行持久化。

如果 redis 宕机重启,自动从磁盘上加载之前持久化的一些数据就可以了,也许会丢失少许数据,但是至少不会将所有数据都弄丢。

2、Redis持久化的两种方式。

1、RDB(Redis DataBase)持久化机制
对 redis 中的数据执行周期性的持久化。2、AOF (Append-only file)持久化机制
AOF 机制将每条写入命令作为日志,以 append-only 的模式写入一个日志文件中,
在 redis 重启的时候,可以通过回放 AOF 日志中的写入指令来重新构建整个数据集。

3、RDB介绍

3.1 原理及特点:

rdb功能的核心函数是rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函数。

RDB是把当前进程的快照数据保存到硬盘中,是二进制格式,有时会存在兼容问题。

Redis加载RDB来恢复数据,速度更快,而加载AOF会较慢。

RDB持久化是Redis默认的持久化方式。

无法做到实时持久化。RDB 数据快照文件,都是每隔 5 分钟生成一次,这个时候就得接受一旦 redis 进程宕机,那么会丢失最近 5 分钟的数据,如果想要在 redis 故障时,丢失数据量少,那么 RDB 没有 AOF 好。

4、AOF介绍

4.1 原理及优缺点

AOF功能的核心函数是 flushAppendOnlyFile

AOF 可以更好的保护数据不丢失,一般 AOF 会每隔 1 秒,通过一个后台线程执行一次fsync操作,最多丢失 1 秒钟的数据,而RDB却丢失5分钟的数据。

每当执行服务器任务时,flushAppendOnlyFile 函数都会被调用, 这个函数执行以下两个工作完成写入->保存:

WRITE:根据条件,将 aof_buf 中的缓存写入到 AOF 文件

SAVE:根据条件,调用 fsync 或 fdatasync 函数,将 AOF 文件保存到磁盘中。

5、使用如何选择

1、还原数据时,优先使用AOF。

2、AOF更安全也更大

3、RDB性能更好

4、如果计算机两个都配了优先加载AOF

redis 重新加载_Redis持久化和Redis持久化方式相关推荐

  1. redis 启动加载mysql_Redis分析系列:启动加载过程

    从本篇文章开始(命名为Redis分析系列),将会通过分析Redis的源代码(以Redis 2.2.0 RC1为准),来对它的内部实现做一些探讨.本文主要介绍Redis启动加载过程,总体上可以分为如下几 ...

  2. python redis模块_大数据入门4 | Redis安装及python中的redis模块加载

    引:前面学习了中文分词.HMM.jieba...这些有很多内容需要总结,但是时间太紧,一下写不完.所以前面的就先放一边,届时复习时再写吧. 今天把刚学的遇到的问题总结一下. 实践部分遇到的问题: 1. ...

  3. Spring加载properties文件的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取pro ...

  4. java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式

    java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...

  5. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  6. 用python的五种方式_Python加载数据的5种不同方式(收藏)

    数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...

  7. spring加载ApplicationContext.xml的四种方式

    spring加载ApplicationContext.xml的四种方式 spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源.Spring中的几种容器都 ...

  8. python数据加载常规教程_Python加载数据的5种不同方式(收藏)

    数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...

  9. PS安装插件提示无法加载扩展未正确签署解决方式(适用于mac/win)

    使用PS插件可以方便我们的工作,但是有的小伙伴发现安装插件之后会提示无法加载扩展未正确签署解决方式,下面macw教给大家处理方法.win或mac都可以使用这个方法哦. 小编这里用的是ps 2020 M ...

最新文章

  1. Arista将Spine-Leaf路由/交换产品进行芯片升级
  2. 弱电工程数据中心计算机房内布线
  3. netty系列之:对聊天进行加密
  4. C:\Users\22981\Desktop (拒绝访问。)
  5. LeetCode MySQL 1667. 修复表中的名字
  6. LeetCode 1382. 将二叉搜索树变平衡(中序遍历+二分递归)
  7. 利用LCD1602显示超声波测距
  8. 【Jackson】jackson 语法介绍 关键字
  9. python如何保存列表_python中数据的保存
  10. (进阶)python实现库存商品管理系统
  11. STM32示波器设计
  12. ContextCapture(Smart3D)网盘教程 直接下载
  13. CAD工具——批量打印
  14. 2016春招腾讯笔试题
  15. 网易蜂巢(云计算基础服务)MongoDB服务重磅来袭
  16. 最近招聘和面试的感想
  17. vivo X90、vivo X90 Pro和vivo X90 Pro+的区别 参数对比哪个好
  18. 深圳大数据培训:大数据开发之掌握Hive的静态分区与动态分区
  19. Office 2007: 数据有效性使用.
  20. linux高级程序复习(未完,整理比较粗糙)

热门文章

  1. 诺基亚推出全新IMPACT平台,交付快捷安全的物联网服务
  2. MySQL字符集详解
  3. nullnullc++ 精简版 fps限制
  4. ssh服务及安全配置
  5. Yum未完成事务问题
  6. linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式
  7. DataContractJsonSerializer 没有using 类库找不到
  8. JS实现子类调用父类的同名函数函数
  9. 大数据之-Hadoop3.x_MapReduce_序列化案例FlowMapper---大数据之hadoop3.x工作笔记0098
  10. 大数据_Hbase-内容回顾和补充---Hbase工作笔记0018