Redis持久化

1、redis的持久化

为了防止其数据因断电等原因丢失,需要将数据存入硬盘中,这样在断电后也可以访问到数据库当中的数据。这个将内存的数据写入到磁盘中,防止服务器宕机内存数据丢失,就是redis的持久化。

1.1、redis持久化机制

redis提供了两种持久化机制:

  1. RDB:(默认持久化方式)
  2. AOF

2、RDB(快照)持久化

RDB:是redis Database的简写。

它按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb为二进制的文件。

生成快照的方式:

客户端:

  1. save---手动触发
  2. bgsave--手动触发

服务端:

  1. 通过配置文件--自动触发
  2. shutdown

2.1、save触发

该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:

执行完成后如果存在老的RDB文件,新的就会将其替换掉。

2.2bgsave触发

执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:

bgsave在执行该命令时会fork出一个新的线程,单独执行rdb持久化操作,而不影响其他客户对redis服务的操作。

2.3配置redis.conf自动化RDB操作 

2.4RDB优缺点

优点:

  • 数据恢复速度快。
  • 只有一个dump.rdb文件,方便持久化。

 缺点:

  • 数据完整性差。RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。
  • dump.rdb文件是一个redis中特制的二进制文件,可能会发生版本不兼容问题。

 3、AOF持久化

日志追加持久化,当我们执行写操作,会触发一个函数write,会把写操作的命令追加到一个日志文件appendfile中。当服务器启动时会把appendfile中的命令从新执行一遍。默认不开启。

3.1、开启AOF持久化

进入redis.conf进行修改:

  1. 修改 appendonly yes 开启持久化。
  2. 修改 appendfilename “appendonly.aof” 指定生成文件名称。

3.2、AOF优缺点

优点:数据完整性高。

缺点:数据恢复慢启动效率低。 

思考:

如果rdb和aof都使用,当服务器重启时会加载哪个文件?

先加载AOF的文件【它以数据完整性为主】。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值