暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

一篇读懂Redis开启RDB持久化

DevOps架构实战 2022-06-06
2031

开启RDB配置

配置redisn秒内如果超过mkey被修改就自动做快照,下面是默认快照保存配置(这三个选项都屏蔽,则RDB禁用):

a、save 900 1      # 900秒内如果超过1key改动,则发起快照保存

b、save 300 10     # 300秒内如果超过10key改动,则发起快照保存

c、save 60 10000   # 60秒内如果超过10000key改动,则发起快照保存


1、什么叫redis快照

快照,顾名思义可以理解为拍照一样,把整个内存数据映射到硬盘中,保存一份到硬盘,因此恢复数据比较快,把数据映射回去即可,不你AOF,一条条的执行操作命令。

快照是默认的持久化方式,这种方式是将内存中的数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb,可以通过配置设置自动做快照持久化的方式。


产生快照的情况有以下几种:

a、手动执行bgsave

b、手动执行save

c、根据配置文件自动执行

d、客户端发送shutdown,系统会先执行save命令阻塞客户端,然后关闭服务器

e、当主从架构时,从服务器向主服务器发送sync命令来执行复制操作时,主服务器会执行bgsave操作。


2、bgsavesave的区别:

执行save时,阻塞进程

执行bgsave时,非阻塞进程


3、RDB工作原理:

Redis默认会将快照文件存储在redis当前进程的工作目录中的dump.rdb文件中,可以通过dirdbfilename两个参数分别指定快照文件的存储路径和文件名


4、RDB的优点

a、紧凑压缩的二进制文件,备份非常简单

b、fork子进程性能最大化

c、启动效率高


5、RDB的缺点

a、生成快照的时机问题:生产环境一般是配置15分钟,或者半个小时,假如就在这十几分钟内,redis宕机了,就会丢这十几分钟的数据。立刻手动执行bgsave,但也会丢几分钟的

b、fork子进程的开销问题


如果本文对你有帮助的话,欢迎点赞&在看&转发,这对我继续分享&创作优质文章非常重要。感谢🙏🏻

----------------------end---------------------

1、k8s快速启动grafana

2、微服务-Eureka实战部署

3、带你搞懂K8s部署Mysql8.0

4、Kubernetes集群Prometheus监控JVM

5、测试环境快速部署K8s集群实战

文章转载自DevOps架构实战,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论