五、Redis 持久化机制

db文件持久化

  1. 修改配置文件 测试rdb文件生成机制
#save 900 1
#save 300 10
#save 60 10000
save 60 5			#60秒内修改了5次key 则生成

#一分钟内生成5个key
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> set k5 v5
OK
		

​ 生成了dump.rdb文件

在这里插入图片描述

在这里插入图片描述

当执行FLUSHDB/ FLUSHALL命令时也会生成dump.rdb文件

rdb文件生成触发条件

  1. 满足save条件
  2. 执行FLUASHDB/FLUASHALL命令时
  3. 结束redis服务时

恢复rdb文件

​ 使用命令查看当前rdb的存放目录

127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/usr/local/bin"    #只要把rdb文件放在这个目录下 启动redis服务时会自动加载

rdb持久化的缺点:

  1. rdb持久化需要一定的时间间隔和触发条件,如果在没有满足条件时宕机了,则数据就会丢失

  2. rdb持久化是主进程fork一条子进程进行操作,会占用一定的内存资源

Redis AOF持久化机制

  1. 在配置文件中开启aof持久化,其他基本 不用变
appendonly yes		#默认是no

​ appendonly.aof文件保存在 启动目录下,里面记录的就是执行过的命令
在这里插入图片描述

​ 如果aof文件损坏,redis服务将不能启动

在这里插入图片描述

可以使用check工具修改aof文件

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

修复后,出错的哪条命令被删除了!!!

aof文件重写

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

如果两者同时开启,会优先选择aof。aof更实时一些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值