Redis AOF

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

在这里插入图片描述
默认是设置没开启状态,如果开启就需要把 appendonly no 改为yes 就可以手动开启AOF!
appendfilename :指的是AOF的文件名字

示例:
第一步:
在这里插入图片描述
第二步:
在这里插入图片描述
第三步:

127.0.0.1:6379> set k1 va
OK
127.0.0.1:6379> set k2 va
OK
127.0.0.1:6379> set k3 v1
OK

第四步 打开查看:
在这里插入图片描述

如若AOF文件错误需要修复怎么办?
示例:
在这里插入图片描述
最后aaaa那是有误的 该怎么恢复?

Redis里面自己带有Aof 以及rdb的修复功能  
[root@localhost bin]# redis-check-aof  --fix appendonly.aof 
						修复功能     修复   谁:appendonly.aof
0x              6a: Expected \r\n, got: 6161
AOF analyzed: size=124, ok_up_to=81, ok_up_to_line=26, diff=43
This will shrink the AOF from 124 bytes, with 43 bytes, to 81 bytes
Continue? [y/N]: y
Successfully truncated AOF  成功
[root@localhost bin]#  

修复完成之后:
在这里插入图片描述

优点和缺点:
优点:
1.每一次修改都同步,文件的完整会更好
2.每秒同步一次,可能会丢失一秒的数据
3.从不同步,效率最高
缺点:
1.相对于数据文件来说,aof远远大于rdb,修复的速度比rdb慢
2.aof运行效率也要比rdb慢,所以默认的redis默认的配置就是rdb持久化!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis AOF是一种持久化机制,用于将Redis服务器的操作日志以追加的方式记录在磁盘上。引用中提到,当AOF文件的体积变得过大时,Redis可以自动进行AOF重写。AOF重写实际上是对当前数据集所需的最小命令集合进行重写,而不是对原有的AOF文件进行写入和读取操作。这个重写过程是在后台进行的,通过fork子进程来执行。重写后的新AOF文件能够恢复当前数据集的状态。 引用中提到,RedisAOF重写程序放在后台子进程中执行的原因是为了避免影响服务器的请求处理能力。通过将AOF重写程序放在后台执行,可以确保服务器能够继续处理请求,而不会被AOF重写过程阻塞。 在Redis服务器中,redisServer结构维护着服务器的状态,而aof_buf域则用来保存等待写入AOF文件的协议文本(RESP)。这些协议文本包含了对键的操作命令,用于记录服务器的操作日志。当需要将操作日志写入AOF文件时,这些协议文本会被写入到AOF缓冲区中,然后由后台的AOF子进程负责将缓冲区中的内容写入到AOF文件中。这种方式可以提高性能,并且减少了直接写入文件的开销。引用中提到了这一点。 综上所述,RedisAOF机制是通过记录操作日志来实现数据持久化的。当AOF文件体积过大时,Redis会自动进行AOF重写,将当前数据集所需的最小命令集合写入一个新的AOF文件中。为了避免影响服务器的请求处理能力,AOF重写过程会在后台执行。通过维护一个AOF缓冲区,Redis可以将待写入的协议文本暂时保存在内存中,然后由后台子进程负责将其写入AOF文件中。这种机制可以提高性能并减少直接写入文件的开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值