Redis 数据库AOF持久化的操作

大家好,今天分享一下Redis 数据库aof持久化的操作

AOF(Append Only File ):将我们的命令都记录下来,恢复的时候就把这个文件再执行一遍

在这里插入图片描述

aof 保存的是appendonly.aof 文件

[root@localhost redistest]# vim redis.conf 

在这里插入图片描述
它的配置文件在这里

注意这个
(默认是关闭)

在这里插入图片描述

这里也要注意一下

在这里插入图片描述

把这个改成yes就可以使用aof了

在这里插入图片描述

这个时候可以看见有appendonly.aof这个文件

在这里插入图片描述

重启数据库

127.0.0.1:6379> SHUTDOWN
not connected> exit
[root@localhost bin]# 

再次进入数据库

[root@localhost bin]# redis-server redistest/redis.conf 
7526:C 23 Mar 2022 12:39:19.261 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7526:C 23 Mar 2022 12:39:19.261 # Redis version=5.0.8, bits=64, commit=00000000, modified=0, pid=7526, just started
7526:C 23 Mar 2022 12:39:19.261 # Configuration loaded
[root@localhost bin]# redis-cli  -p 6379

创建一些数据

127.0.0.1:6379> set name zhan
OK
127.0.0.1:6379> set age 1
OK
127.0.0.1:6379> set like dianshiju
OK
127.0.0.1:6379> 

查看这个文件的内容:(这就是我们刚刚创建的文件)

[root@localhost bin]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$4
name
$4
zhan
*3
$3
set
$3
age
$1
1
*3
$3
set
$4
like
$9
dianshiju

我们在下面给它做一些人为性的破坏

关掉数据库

127.0.0.1:6379> SHUTDOWN
not connected> exit
[root@localhost bin]# 

人为改动这个文件

[root@localhost bin]# vim appendonly.aof 

在这里插入图片描述
这是我们随便添加的内容

运行数据库

[root@localhost bin]# redis-server redistest/redis.conf 
7762:C 23 Mar 2022 12:54:10.888 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7762:C 23 Mar 2022 12:54:10.888 # Redis version=5.0.8, bits=64, commit=00000000, modified=0, pid=7762, just started
7762:C 23 Mar 2022 12:54:10.888 # Configuration loaded
[root@localhost bin]# 

会发现我们的数据库已经连接不上去了

[root@localhost bin]# redis-cli  -p 6379
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> 

所以当appendonly.aof 有问题,我们是无法连接数据库的

这个时候,我们在bin 目录下
在这里插入图片描述
看见redis-check-aof这个文件,它是用来检查或恢复我们的appendonly.aof 这个文件的

使用redis-check-aof对appendonly.aof 进行修复

[root@localhost bin]# redis-check-aof  --fix appendonly.aof 
0x              70: Expected \r\n, got: 3230
AOF analyzed: size=152, ok_up_to=85, diff=67
This will shrink the AOF from 152 bytes, with 67 bytes, to 85 bytes
Continue? [y/N]: y
Successfully truncated AOF
[root@localhost bin]# 

这样就算修复完成了

查看appendonly.aof 这个文件的内容

发现刚刚的改动已经没有了

[root@localhost bin]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$4
name
$4
zhan
*3
$3
set
$3
age
$1
1
[root@localhost bin]# 

重新启动数据库

[root@localhost bin]# redis-server redistest/redis.conf 
7972:C 23 Mar 2022 13:09:22.904 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7972:C 23 Mar 2022 13:09:22.904 # Redis version=5.0.8, bits=64, commit=00000000, modified=0, pid=7972, just started
7972:C 23 Mar 2022 13:09:22.904 # Configuration loaded
[root@localhost bin]# 

我们已经成功连接数据库

[root@localhost bin]# redis-cli -p 6379
127.0.0.1:6379> 

aof 数据持久化的优点:

1.每一次的数据修改,都会同步,这样的话,数据的完整性会好很多

缺点:
1.从数据文件的角度上看,aof文件的大小远远大于rdb,所以它的速度也会相对较慢

这里有一个重写的配置

在这里插入图片描述
它的意思就是说,如果aof文件大于64mb,redis就会fork一个新的进程将我们的文件进行重写

aof 就是使用文件的无限追加,这就会导致文件越来越大

好了,有关于Redis 数据库aof持久化的操作就到这里了,谢谢大家

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思诚代码块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值