Redis的持久化操作—RDB&AOF

RDB(Redis DataBase):Rdb 保存的是dump.rdb文件

顾名思义,他是一个redis的一个数据库备份文件,是一个快照,可以保存当前时间内数据库内的所有信息。它会在指定的时间间隔内将内存中的数据集快照写入到磁盘,也就是Snapshot快照,恢复数据的时候,将快照文件直接读取到内存中去。

原理

Redis会单独创建一个子进程(fork)来进行持久化,会先将数据写入到一个临时文件中去,等持久化过程结束后,再用这个临时文件替换上次持久化号的文件,整个过程中,主进程不进行任何io操i做,因为所有的io操做都在子进程中进行了,相当于我备份文件不占用主进程的资源。这就确保了极高的性能。 如果需要大规模数据库的回复,且对于数据恢复的完整性不做很高的要求,呢么RDB是一种很好的方式,唯一缺点就是:最后一次持久化的数据有i可能会丢失,因为他的作用原理是在一个时间间隔内执行多少次操作后进行快照保存嘛(在redis.conf文件中配置)如果我m秒内没有执行n次操作,此时服务器意外down机了,比如我关闭线程。此时的话就会丢失这个m秒内的数据。

进行数据恢复只需要将备份的rdb文件移到当前执行链接的文件夹下就可以

save 900 1 // 每九百秒中执行一次操作执行快照

save 300 10 // 三百秒中执行10次操作触发快照

save 60 10000 // 60秒中执行10000次操作触发快照

注:Fork:Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等) 数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程

AOF(append only file):依赖于文件

原理:

以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作

aof形式的持久化文件为aof后缀的文件,这个文件如果进去更改的话,呢么下一次链接的时候就会出现链接出错的问题,因为系统监测到你的aof文件被损坏了,但是我们可以修复这个文件,具体的方法是,进入到redis安装路径对应的bin目录下,那里会有一个redis-check-aof 的黄色命令把,然后通过这个命令就可以修复了(需要注意的是,修复后,被篡改的数据会呗清除)

修复:

redis-check-rdb --fix aof文件路径

如果aof和rdb共存的话,优先寻找aof文件:
aof和rdb的持久化数据是不互通的 如果只开一个,呢么另一个的数据不受影响,比如我只开启rdb,呢么rdb内有数据,然后我关闭rdb,开启aof,将数据库清空,这个时候会同时有rdb和aof两个持久化文件,如果此时我只让rdb开启,呢么再次启动数据库,数据就i还是rdb的数据。而不是aof的空数据。

此时aof内的数据为空,而rdb有数据,如果他们同时开启,
呢么结果按aof内的数据来,就是还是空

Redis的持久化操作---RDBAOF相关推荐

  1. redis的持久化操作2 AOF

    一.AOF是什么 AOF(Append Only File)是继RDB之后产生,为了解决RDB容易丢失最后一次快照的问题,就产生了AOF技术.AOF就是以日志的形式记录下redis所有的写操作(不记录 ...

  2. redis的持久化操作

    Redis 持久化 Redis 如何将数据写入磁盘(仅附加文件.快照等) 持久性是指将数据写入持久存储,例如固态磁盘 (SSD).Redis 本身提供了一系列持久化选项: RDB(Redis 数据库) ...

  3. Redis数据持久化(详解+样例)

    一.实验目的 1.了解 Redis 数据库的持久化机制 2.直接使用 Redis 进行持久化操作 3.Docker 下 Redis 的持久化操作 二.Redis持久化 2.1 什么是持久化 关系型数据 ...

  4. Redis两种持久化方式(RDBAOF)

    爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis的持久化过程中并不需要我们开发人员过多的参与,我们要做的是什么呢? ...

  5. Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDBAOF混合使用

    补充一个知识 缓存:数据可以丢,保证速度. 数据库:数据是绝对不能丢的,保证速度+持久性,内存中的数据是掉电易失的. 存储层: 快照/副本 日志文件 $$优先级高于管道 fork() fork是系统调 ...

  6. redis分片_Redis的持久化操作

    走过路过不要错过 点击蓝字关注我们 1.Redis持久化策略 1.1 什么是持久化 说明:Redis运行环境在内存中,如果redis服务器关闭,则内存数据将会丢失. 需求: 如何保存内存数据呢? 解决 ...

  7. Redis(一):Redis的持久化的原理和操作

    目录 写在前面 1.电商架构方案 1.1.页面静态化 2.大型网站 3.缓存架构 3.redis持久化对容灾意义 3.1.redis持久化意义 4.RDB和AOF 4.1.RDB和AOF两种持久化机制 ...

  8. Redis10:Redis持久化操作

    Redis 提供了2个不同形式的持久化方式. RDB(Redis DataBase) AOF(Append Of File) 1.RDB(Redis DataBase) 1.1 RDB是什么 在指定的 ...

  9. Redis的持久化方案

    Redis 持久化策略浅析 (qq.com) Redis的持久化方案 Redis 是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将 Redis 中的数据以某种形式(数 ...

最新文章

  1. ccf 交通规划(迪杰斯特拉优先队列模板)
  2. windows安装oracle11g
  3. Linux权限管理(基本权限、默认权限、
  4. 聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
  5. 安装dos2unix
  6. [architecture]-ARM SMMU学习概念总结一篇就够了
  7. 查看mysql是否繁忙_Oracle系统繁忙时,快速定位
  8. 字符串与字符串函数 - 字符串输出 常用字符串函数
  9. HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)
  10. Python | 创建员工类别
  11. 包头市民族中学2021高考成绩查询,2021庆阳高考成绩查询系统入口
  12. 【转载】计算几何题目集锦
  13. nsq php,NSQ 最佳实践
  14. Linux中select函数的使用 select() Linux linux函数 select
  15. 速读《现代软件工程——构建之法》有感
  16. Flutter ListView ListView.build ListView.separated
  17. 单细胞测序数据挖掘与课题设计
  18. 智课雅思短语---三、unshakable duty
  19. ICTCLAS代码学习笔记之CSpan类
  20. 跑步用app轨迹画得比较准确的居然是“咕咚”

热门文章

  1. 解决大篇幅pdf中英文复制时,粘贴到word中自动换行的问题
  2. C#基于RealPlayX.ocx视频监控整合程序
  3. 【笔记整理】jq笔记
  4. Linux常用指令<三>
  5. 形容语言aab c,写一个aab c式的词语-ABB式ABAB式ABAC式AAB式词语各30个
  6. 做PO难,难于上青天
  7. 2022-01-15 OpenCV(3.4.1) Error: Image step is wrong (The matrix is not continuous, thus its
  8. K_A08_004 基于 STM32等单片机驱动MX1919模块按键控制直流电机正反转加减速启停
  9. 微服务架构系列一:关键技术与原理研究
  10. Android MediaPlayer+SurfaceView播放视频 (异常处理)