Redis之RDB和AOF

Redis之RDB和AOF

一、 Redis持久化

Redis是一个内存数据库,数据保存在内存中,但是大家都知道内存的数据变化是很快的,很容易发生丢失,所以有必要把内存数据持久化到磁盘文件中,以便于在故障发生时可以恢复数据,Redis提供了两种不同级别的持久化方式:一种是RDB,另一种是AOF。

RDB 是在指定的时间间隔内生成数据集的时间点快照,是全量形式的备份。

AOF 是记录服务器执行的所有写操作命令实时追加到文件中,在恢复的时候,可以通过重新执行这些命令来还原数据集 ,是增量形式的备份。

二、为什么要持久化

我们需要了解Redis在什么情况下需要持久化操作,我们一般使用数据库来进行数据的存储,在正常不存在高并发的情况下,这样做并没有什么问题,可是当涉及大数据量读的请求或者数据高并发写的时候我们就需要引进Redis。

  1. 读取缓存用的数据
  2. 高并发使用它快速写

我们把常用数据放在 Redis中,也就是直接放在内存之中,让服务端直接去读取内存中的数据,那么这样速度明显就会快上不少,并且会极大减小数据库的压力,这时可以不用持久化,Redis数据只是数据库的一个快照,当内存数据崩掉后我们只要重新将数据库数据刷到内存里即可。

有很多高并发写的场景,比如秒杀功能、抢火车票等,这些场合都是在某一个瞬间或者是某一个短暂的时刻有成千上万的请求到达服务器,把业务数据在 Redis 上进行读写,能大大提高读写的速度,从而满足高速响应的需求,这些缓存数据在写入数据库之前是需要持久化的

三、两种持久化方式比较

RDB 的优点:

  1. RDB文件非常紧凑,数据集全量快照, 适合用于进行备份和灾难恢复。
  2. 可以最大减少对 Redis的本身性能的影响。
  3. RDB在恢复大数据集时的速度快。

RDB 的缺点:

RDB 文件需要保存整个数据集的状态, 所以它并不是一个轻松的操作, 不能在每一时刻都保存一次 RDB 文件。 在这种情况下, 一旦发生故障停机, 你就可能会丢失好几分钟的数据。

AOF 的优点:

  1. 可以更好的保护数据不丢失。
  2. 日志文件记录小,写入性能非常高。
  3. 日志文件非常可读,非常适合临时误删除的紧急恢复。

AOF 的缺点:

  1. AOF 文件的体积通常要大于 RDB 文件的体积;
  2. 有时无法将数据集恢复成保存时的原样。

四、配置和触发方式

RDB触发 :

手动触发: save 该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,bgsave 执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。

自动触发: redis.conf配置文件 save <指定时间间隔> <执行指定次数更新操作>。

RDB相关配置 :

  1. rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。

  2. rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

  3. dbfilename :设置快照的文件名,默认是 dump.rdb

  4. dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。

AOF触发 :

是通过AOF配置触发的,默认是关闭的。 把配置文件中appendonly设置为 yes,即可开启redis的AOF功能

AOF相关配置 :

  1. appendonly no : 是否开启AOF
  2. appendfilename : AOF文件名
  3. appendfsync : 磁盘同步策略,
    always 每次, everysec 每秒一次, no 由操作系统执行,默认
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值