redis的持久化操作2 AOF
一、AOF是什么
AOF(Append Only File)是继RDB之后产生,为了解决RDB容易丢失最后一次快照的问题,就产生了AOF技术。AOF就是以日志的形式记录下redis所有的写操作(不记录读操作),只允许在日志文件后面追加内容,不允许进行修改,redis的启动之初就会读取该文件,并从头到尾执行一次,以完成数据的恢复。
二、AOF的配置信息
appendonly:AOF默认是no,设置为yes启动AOF技术
appendfilename:AOF的日志文件名(不建议更改)
appendfsysnc:AOF的保存策略,
1.always:同步持久化,每进行写操作时,立即记录到磁盘中
2.everysec:异步操作,每秒进行一次日志保存,如果在一秒钟之内
redis进程挂掉,那么会丢失数据
3.NO:不进行持久化操作
auto-aof-rewrite-percentage:AOF文件的大小超过上一次文件的多少百分比进行rewrite
auto-aof-rewrite-min-size:AOF文件大小超过多少时,进行rewrite。
(上面两项配置需要同时满足时才会进行rewrite)
no-appendfsync-on-rewrite:redis在进行rewrite时是否可以用appendfsysnc的策略,默认使用no,保证日志文件的安全性。
三、AOF与RDB能否共存?(以及AOF日志文件修复)
可以共存,但是redis会优先去读取AOF的日志文件,如果AOF的日志文件出错,那么redis就会启动失败,可以先将出错的AOF日志文件进行备份然后使用redis-check-aof-fix进行修复。(什么时候AOF日志文件会出错?如果AOF在写日志文件写了一半时,redis突然宕了,那么AOF日志文件就会出现错误的语句)
四、AOF的Rewrite机制
因为AOF的日志文件采用的是追加的方式,所以不可避免的日志文件会越来越大,为了避免这样的情况,AOF就采用了rewirite(重写)机制,当AOF文件的大小超过了设定的阈值,那么redis就会启动AOF的内容压缩,只保留可以恢复数据的最小指令集。
重写的原理:当AOF的文件超过阈值时,就会fork一个新的进程来对AOF文件进行内容的压缩。
五、AOF如何恢复数据
首先需要启动AOF服务,在配置文件中设置appendonly为yes。
将有保存数据的AOF文件复制一份到相应的目录下,重新启动redis服务,恢复数据
如果是因为异常关闭,需要使用redis-check-aof-fix修复AOF文件,再继续操作。
六、AOF的优势与劣势
优势:灵活(有多种的同步策略)、数据的完整性比RDB强(每秒,或者每个操作就进行一次同步)
劣势:相同的数据集下,AOF的文件会远比RDB大(因为AOF需要保存每次的写操作)
AOF的运行效率会比RDB慢(AOF需要依次执行每一条写操作)
五、RDB和AOF使用总结
RDB持久化能在指定的时间间隔对数据进行快照存储
AOF持久化能记录每次对服务器的写操作,通过重复执行写操作来恢复数据
如果只想让redis进行缓存服务,那么可以不开启RDB与AOF持久化服务
如果需要,官方建议同时开启两种持久化方式,其中主要使用AOF来进行数据的恢复,RDB作为一个备用的手段,因为AOF在不断的变化,不好备份,而且可以防止AOF出现了什么BUG导致数据的丢失。
关于性能方面的配置:
redis的持久化操作2 AOF相关推荐
- Redis的持久化操作---RDBAOF
Redis的持久化操作-RDB&AOF RDB(Redis DataBase):Rdb 保存的是dump.rdb文件 顾名思义,他是一个redis的一个数据库备份文件,是一个快照,可以保存当前 ...
- Redis解读持久化RDB和AOF原理
我们知道关系型数据库比如MySQL支持全备.差备.增备.为了保证Redis故障重启后仍然可用我们的Redis支持全备(RDB快照备份)和增备(AOF日志连续增量备份),下面我们就来解读Redis持久化 ...
- redis的持久化操作
Redis 持久化 Redis 如何将数据写入磁盘(仅附加文件.快照等) 持久性是指将数据写入持久存储,例如固态磁盘 (SSD).Redis 本身提供了一系列持久化选项: RDB(Redis 数据库) ...
- 【Redis高手修炼之路】Redis的持久化——ROB和AOF持久化机制
- redis分片_Redis的持久化操作
走过路过不要错过 点击蓝字关注我们 1.Redis持久化策略 1.1 什么是持久化 说明:Redis运行环境在内存中,如果redis服务器关闭,则内存数据将会丢失. 需求: 如何保存内存数据呢? 解决 ...
- Redis哨兵主备切换的数据丢失及Redis数据持久化
一 两种数据丢失的情况 异步复制导致数据丢失 master->slave复制数据是异步的,可能有部分数据还没复制到slave,master就宕机了,此时导致数据丢失 集群脑裂导致数据丢失 mas ...
- Redis数据持久化(详解+样例)
一.实验目的 1.了解 Redis 数据库的持久化机制 2.直接使用 Redis 进行持久化操作 3.Docker 下 Redis 的持久化操作 二.Redis持久化 2.1 什么是持久化 关系型数据 ...
- Redis持久化 - RDB和AOF
一.持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘). 持久化Redis所有数据保持在内存中,对数据的更新将异步地保 ...
- redis 配置文件 append only file(aof)部分---数据持久化
############################## 仅追加方式 ############################### #默认情况下Redis会异步的将数据导出到磁盘上.这种模式对许 ...
最新文章
- 模型大小 与参数量计算
- 形态形成场(矩阵乘法优化dp)
- aaynctask控制多个下载进度_C# 多线程方法 控制两个进度条
- mysql操作语句now_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!
- ASP.NET Core Razor 视图组件
- influxdb mysql对比_InfluxDB和MySQL的读写对比测试
- Windows一键设置JAVA环境变量
- 聊聊eureka的preferSameZoneEureka参数 1
- 【“新智认知”杯上海大学联赛】E-CSL的魔法(序列b到序列b‘需要的数据交换次数)
- 阿里云云计算 32 PolarDB的概念
- 实现真正的「人机」对战:引入三方 AI 引擎
- 阿里矢量图可根据样式修改颜色
- 如何理解概率论中的“矩”?
- nodejs--process
- jquery展开收起(手风琴)
- 第九届广东省大学生程序设计竞赛排名
- 28python成功输出腾讯位置大数据北京地区迁出数据
- 【MySQL】MyCAT三大配置文件详解(MySQL专栏启动)
- 华章1-2月份新书简介(2017年)
- Matlab谐波搭建
热门文章
- 2018年终特辑:美通社TOP20最受媒体与公众关注新闻稿
- vue.js 默认选中select_vue select二级联动第二级默认选中第一个option值的实例
- 04_51入门_数码管
- 微信小程序开发入门教程(十一)
- css+html实现倒三角
- FreeCAD-01软件下载安装
- 神经网络常用激活函数及其应用举例
- xml在u3d的使用[u3d_rpg游戏开发之物品管理(四)]
- 客户端负载均衡与服务端负载均衡
- ap计算机科学课程内容,AP课程之“计算机科学原理”介绍