redis的rdb快照持久化

rdb工作原理:

 每隔N分钟或者N次写操作以后,从内存dump数据形rdb文件,压缩放在备份的目录下面。

配置rdb的配置,在redis.conf配置



测试rdb的功能:

1为了测试简单 

改为

save 900 1
save 300 10
save 60 100

1分钟执行100条命令,就会生成rdb文件


2在执行测试命令之前,先往redis设置一个key-value对

set site www.baidu.com


3用redis自带的命令来测试,执行120条命令



 4 执行完毕以后会发现在当前目录下面生成rdb文件。



5  设置第二个键值对set name wangli 


6重启redis,连接客户端,会发现site的键值对在redis中,但是name的键值对消失了,这是因为在重启的时候,会自动导入rdb文件到redis中,由于1分钟执行100次才会生成rdb文件,所以在执行测试命令之前 设置的site键值对,已经生成在rdb文件中,可是后来设置的name的键值对仅仅在120次命令以后才设置,(在100次的时候会生成一次rdb文件,剩下的20次还不够资格再一次生成rdb文件)还没有到导入rdb的条件,所以rdb里面没有这个键值对。图如下




7 rdb持久化的优缺点:

  优点:由于是一整块快照,恢复速度非常快。

   缺点:在两个保存点之间,断电会丢失n分钟数据,出于对持久化更精细的需求,redis推出了aof方式持久化。

RDB最重要的两个过程是rdbSave和rdbLoad


触发rdbSave过程,主要有4种方式: 
1. SAVE命令 
2. BGSAVE命令 
3. master接收到slave发来的sync命令 
4. 定时save(配置文件中制定) 


第一种情况,Redis保存RDB文件是在主进程中进行,所以在这其间,Redis无法响应客户端请求(再次强调:Redis是单线程Server);第二种情况,Redis fork出一个子进程,然后在子进程中进行rdbSave,因此也就不会阻塞主进程对客户端请求的处理;第三种情况和第四种情况同第二种情况,也是在子进程中进行;


触发rdbLoad过程,主要有两种方式: 
1. Redis启动时候的初始化; 
2. slave接收到master发来的RDB文件; 












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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值