前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持久化RDB/AOF-Redis(三)

持久化RDB/AOF-Redis(三)

作者头像
用户9919783
发布2023-09-05 14:26:29
1750
发布2023-09-05 14:26:29
举报
文章被收录于专栏:后端从入门到精通

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

数据结构-Redis(二)

一、查询所有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都可以注释掉。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后端从入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档