持久化RDB/AOF-Redis(三)

本文介绍了Redis中的数据持久化方法,包括使用RDB快照和AOF日志的方式。RDB在满足特定条件时进行持久化,而AOF提供更频繁的持久化选项。AOF有三种同步策略,并支持重写以优化存储。混合持久化结合了RDB的高效和AOF的完整性,提高数据恢复速度。文章还讨论了如何配置这些持久化策略。
摘要由CSDN通过智能技术生成

上篇文章说了数据持久化,这里再学习一个命令。

数据结构-Redis(二)icon-default.png?t=N4P3https://blog.csdn.net/ke1ying/article/details/131118016

一、查询所有key

scan 0 match zhuge* count 1

他会返回游标,下次查询用返回的游标

直到游标返回0,则代表查询到所有的key

 

  • RDB
  •  

RDB快照怎么配置呢?

默认是dump.rdb文件。

分别代表意思是:

60s之内1万次修改,则会直接写到dump.rdb。

300s之内修改10次,则会把内存数据全部写到dump.rdb。

900s之内修改1次,则会内存数据全部写到dump.rdb。

这三个只要满足一个就会持久化发生。

我们也可以手动sava执行持久化到磁盘。(会阻塞主线先i/o操作)

Redis现在采用的是bgsave是异步持久化。(background save)

子线程是由主线程fork产生的,完全共享主线程的数据,主线程read则不传递给子线程,当write时候,就会和子线程共享。(写时复制)

rdp缺陷显而易见,如果上面三个条件没触发,系统宕机,则会丢失数据。于是aof则出现了。

  • AOF

Append only file

有三个策略:

Appendfsync everysec:写秒钟执行持久化一次,足够快。

Appendfsync always:每次有新命令立马持久化。(所以影响性能)

Appendsync no:不持久化。

可以通过appendonly yes来开启。

AOF重写(优化机制)

比如很多条incr readcount原子加,这时候一直执行同一条命令,这时候就可以优化。

Auto-aof-rewrite-min-size 64mb:意思是当aof文件有64mb的时候,就会清理上面那些垃圾命令。

Auto-aof-rewrite-percentage 100:当文件上次重写的增长了百分之百,再次触发,意思就是128mb。

手动触发重写命令:bgrewriteaof

Redis为了保证数据安全性,优先用aof文件恢复,因为aof文件数据更多。

四、混合持久化

Aof-use-rdb-preamble no

默认是关闭的。

4.0后支持,开启混合持久化的前提,必须是开启aof之上做的。

1、普通写入是数据存入aof文件。

2、当在aof重写的时候,不会再把优化写成一条一条命令,而是写成二进制的rdb格式,存入aof文件。

(没开启混合的时候,aof存的是数据,打开之后,存的是二进制rdb格式)

后面要恢复数据的时候,二进制直接在电脑显示,效率更高,存储的格式也更紧凑。

所以恢复数据速率更高。

当使用混合持久化方式的时候,save的rdb都可以注释掉。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

后端从入门到精通

你的鼓励是我最大的动力~

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

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

打赏作者

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

抵扣说明:

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

余额充值