redis数据持久化之RDB和AOF
前言
redis虽然是内存缓存程序,但是可以将内存中的数据保存到硬盘上,从而实现数据保存。目前有两种redis数据持久化方式,分别是RDB和AOF。
RDB模式
RDB之简介
RDB(redis database),redis每隔一段时间对当前数据生成一个“快照”,默认只保留最新的一份快照,默认快照文件名为“dump.rdb”。redis.conf的配置如下:
# 900秒内,如果超过1个key被修改,则发起快照保存
save 900 1
# 300秒内,如果超过10个key被修改,则发起快照保存
save 300 10
# 60秒内,如果超过10000个key被修改,则发起快照保存
save 60 10000
RDB之优缺点
- 优点
- RDB基于时间点保存数据,可以通过脚本自定义时间点备份并保留多个备份,当出现问题时可以恢复到不同时间点的版本。
- 大数据量时恢复较快
- 缺点:
- 实时性不高,一旦发生故障,可能会丢失好几分钟的数据。
- 数据量很大时,备份时间较长。
AOF模式
AOF之简介
AOF(Append Only File),redis将所有对数据库进行写入的命令(及其参数)记录到AOF文件(默认文件appendonly.aof)中。redis.conf配置如下:
appendfsync yes
# 每次有数据修改时都会写入AOF文件
appendfsync always
# 每秒同步一次。aof默认策略
appendfsync everysec
appendfsync的三个可选值:
- everysec:每秒写回,每个写命令成功执行完,吸纳吧日志写到AOF文件的内存缓冲区,每隔一秒把缓冲区的内容写入磁盘。优点:基本不丢数据。缺点:影响主线程性能。
- always:同步写回,每个写命令成功执行完,立马将日志同步写入磁盘。
- no:操作系统控制的写回,每个写命令成功执行完,只是先把日志写到AOF的内存缓冲区,由操作系统决定何时将缓冲区内容写回磁盘。优点:性能好。缺点:落盘时机不受redis控制,宕机时损失数据可能很多。
AOF重写机制
为了避免AOF文件多大,redis根据数据库现状创建一个新的AOF文件。旧日志中的多条重复命令被合并为一条命令。AOF重写时会fork一个子进程bgrewriteaof来处理(fork的一瞬间会阻塞主线程),避免对主线程造成过多的影响。
AOF之优缺点
- 优点:
- 实时性更强,即便故障,按照默认的fsync策略,也只会丢失1秒的数据。
- 缺点:
- 相较于RDB模式,更占用硬盘存储空间。而且由于记录的是操作命令,故障恢复时需要逐一执;如果操作日志很多,恢复就很缓慢。
补充
- redis4.0中提出了一个混合使用AOF和RDB的方法。简单来说,RDB以一定频率执行,两次RDB之间执行AOF。这样一来,RDB不需要频繁执行,AOF也只用记录两次RDB之间的操作。设置参数为:
aof-use-rdb-preamble yes
redis数据持久化之RDB和AOF的更多相关文章
- Redis数据持久化(RDB、AOF)
1. 简介 Redis作为内存型数据库,数据都保存在内存中,如果重启或意外宕机后,数据会全部丢失.因此,Redis提供了完善的持久化机制,将内存中的数据持久化到磁盘上,避免了完整性和安全性的问题, ...
- Redis:持久化之RDB和AOF
Redis:持久化之RDB和AOF RDB(Redis DataBase) 在指定的时间间隔内将内存中的数据集快照写入硬盘 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里. R ...
- 分布式缓存Redis的持久化方式RDB和AOF
一.前言 Redis支持两种方式的持久化,RDB和AOF.RDB会根据指定的规则“定时”将内存中的数据存储到硬盘上,AOF会在每次执行命令后将命令本身记录下来.两种持久化方式可以单独使用其中一种,但更 ...
- redis的持久化方式RDB和AOF的区别
1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能, ...
- 11、Redis的持久化(RDB、AOF)
写在前面的话:读书破万卷,编码如有神 --------------------------------------------------------------------------------- ...
- NoSql数据库Redis系列(3)——Redis数据持久化(RDB)
大家都知道 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库 ...
- Redis系列(三):Redis的持久化机制(RDB、AOF)
本篇博客是Redis系列的第3篇,主要讲解下Redis的2种持久化机制:RDB和AOF. 本系列的前2篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. Redis系列(二): ...
- 详细分析Redis的持久化操作——RDB与AOF
一.前言 由于疫情的原因,学校还没有开学,这也就让我有了很多的时间.趁着时间比较多,我终于可以开始学习那些之前一直想学的技术了.最近这几天开始学习Redis,买了本<Redis实战>, ...
- redis的持久化(RDB与AOF)
1.为什么redis要实现持久化? 避免因宕机.断电等场景导致进程退出后数据丢失,如果redis的数据都只存放于内存,那么进程退出后数据就丢失了.持久化机制可以持久化内存数据到硬盘,重启redis后基 ...
- redis的持久化方案RDB和AOF
RDB:快照形式,定期把内存中当前时刻的数据保存到磁盘.Redis默认支持的持久化方案.速度快但是服务器断电的时候会丢失部分数据 AOF形式:append only file.把所有对redis数据库 ...
随机推荐
- 2023-03-01:用moonfdd/ffmpeg-go库,将h264文件编码为mp4文件。
2023-03-01:用moonfdd/ffmpeg-go库,将h264文件编码为mp4文件. 答案2023-03-01: 使用 github.com/moonfdd/ffmpeg-go 库.现在我们 ...
- 2022-04-28:有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,
2022-04-28:有 n 个城市通过一些航班连接.给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始, ...
- 2021-04-05:给两个长度分别为M和N的整型数组nums1和nums2,其中每个值都不大于9,再给定一个正数K。 你可以在nums1和nums2中挑选数字,要求一共挑选K个,并且要从左到右挑。返回所有可能的结果中,代表最大数字的结果。
2021-04-05:给两个长度分别为M和N的整型数组nums1和nums2,其中每个值都不大于9,再给定一个正数K. 你可以在nums1和nums2中挑选数字,要求一共挑选K个,并且要从左到右挑.返 ...
- 2022-03-09:我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选
2022-03-09:我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字. 你来猜我选了哪个数字. 如果你猜到正确的数字,就会 赢得游戏 . 如果你猜错了,那么我会告诉你,我选 ...
- 新出的Alist云盘视频助手,真的香还是假的香?
作为某云盘的重度使用者和长期受虐者,前段时间无意中看到一款新出的网盘工具,叫Alist云盘视频助手,不同于一般的网盘工具,它不是面向网盘数据下载的,它面向的是网盘视频文件隐私保护,大白话就是:加密网盘 ...
- 运行和编译时期资源加载的不同【vue】
开发语言都有编译和运行两个阶段,很多时候这个也会带来许多bug 如:一个项目在开发阶段测试没有问题,然上线发布后就会有这样那样的问题,譬如说图片的加载,静态数据(js,css,json)读取错误 一 ...
- DB事物
1.事物概念:一组逻辑操作单元 始数据从一种状态变换到另一种状态事物处理:所有事物 都作为一个工作单元来执行 , 即使出现了故障 都不能改变这种执行方式, commint提交之后 这些修改就永久的保存 ...
- Galaxy生物信息分析平台的数据集对象清理
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. Galaxy Project 是在云计算背景下诞生的一个生物信息学可视化分析开源项目.该项目由 ...
- element-ui中Select 选择器异步加载下一页
场景 当我们使用 Select 选择器存放大量数据的时候. 会发现存在这么2个问题. 1.接口响应时间较长.(因为数据量较多,一次查询的所有)甚至有可能超时. 2.前端下拉框滑动卡顿. 这个时候们如何 ...
- 基于uni-app+vue3渲染markdown格式|uniapp软键盘顶起问题解决方案
前些时候有给大家分享一篇uni-app+vite4+uview-plus搭建跨端项目.今天主要分享下在uniapp中渲染markdown语法及uniapp中软键盘弹起,页面tabbar或顶部自定义na ...