redis之RDB持久化过程

redis的rdb持久化过程
在这里插入图片描述
流程图就想表达两点:
1.主进程会fork一个子进程,子进程共享主进程内存数据(fork其实是复制页表),子进程读取数据并写到新的rdb文件,最后替换旧的rdb文件。

2.在持久化过程中主进程接收到用户写操作,会复制一份数据副本,读写操作在数据副本中进行,因此在配置maxmemory的大小时应该合理,预留足够的物理内存,以免rdb过程有写操作的这种情况而导致内存不足出现异常

redis.conf中rdb持久化机制默认配置

#是否在将rdb文件持久化到磁盘时,进行压缩操作。设置为 "yes" 
#可以提高数据安全性,但可能会降低性能。默认为 "no"。
rdbcompression yes
#rdb文件名
dbfilename rdb_dump.rdb
#rdb持久化,快照可以用一个空字符串参数完全禁用:save “”
#在900秒(15分钟)内,如果有至少1个键被改变,则bgsave进行RDB持久化
#在300秒(5分钟)内,如果有至少10个键被改变,则bgsave进行RDB持久化
#在60秒内,如果有至少10000个键被改变,则bgsave进行RDB持久化
save 900 1          
save 300 10          
save 60 10000      

什么时候会促发rdb持久化

1.手动执行save,bgsave命令的时候
2.redis进程退出之前会进行持久化
3.对key的操作符合redis.conf中配置的促发条件

rdb持久化机制优点

1:rdb文件保存的是二进制数据,在恢复大数据集时速度比aof的快

rdb持久化机制缺点

1.rdb时间比较长,两次rdb之间存在数据丢失风险
2.数据量大时,fork子进程,压缩,写rdb文件耗时都比较长
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值