Redis有哪几种持久化方式?优缺点是什么

2 篇文章 0 订阅

1.1 Redis有哪几种持久化方式?优缺点是什么

1.1.2为什么有持久化

由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。

Redis提供两种持久化方式,RDB和AOF;与RDB不同,AOF可以完整的记录整个数据库,而不像RDB只是数据库某一时刻的快照;

  1. RDB

    (bgsave命令执行过程中,只有fork子进程时会阻塞服务器;而对于save命令,整个过程都会阻塞服务器;因此save已基本被废弃,线上环境要杜绝save的使用 )
    格式:save n m
    RDB是一个紧凑压缩的二进制文件 ,表示在n秒内,如果redis发生了M次的修改,则redis的数据会被存储到内存中。不难看出这是一个周期性的持久化

    缺点:

    (1).因为是周期性的,那么当系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。

    优点:

    (1)对 redis 对外提供的读写服务,影响非常小,可以让 redis 保持高性能,

    (2) 相对于 AOF 持久化机制来说,直接基于 RDB 数据文件来重启和恢复 redis 进程,更加快速。

  2. AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。 在恢复数据时,可以直接读取该文件进行数据恢复

    Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。事实上,每秒同步也是异步完成的,其效率也是非常高的,所差的是一旦系统出现宕机现象,那么这一秒钟之内修改的数据将会丢失。而每修改同步,我们可以将其视为同步持久化,即每次发生的数据变化都会被立即记录到磁盘中。可以预见,这种方式在效率上是最低的。

    缺点:(1)由于AOF一般每秒都在存储,可能对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快

    优点:(1)保存的数据额更加完整,能够更好的通过文件完成数据的重建

    AOF更加倾向于数据的完整性,而RDB系统的性能会比AOF好一点

    1.2 怎么使用这2种持久化

    redis 支持同时开启开启两种持久化方式,我们可以综合使用 AOF 和 RDB 两种持久化机制,用AOF 来保证数据不丢失,作为数据恢复的第一选择; 用 RDB 来做不同程度的冷备,在 AOF 文件都丢失或损坏不可用的时候,还可以使用 RDB 来进行快速的数据恢复。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis持久化有两种方式:RDB(Redis Database)和AOF(Append Only File)。 RDB是将Redis的内存数据保存到硬盘中的二进制文件。它通过在一段时间内数据发生变化时生成一个快照,并将其写入磁盘。RDB的优点是在恢复大型数据集时速度快,因为它是将整个数据集一次性写入磁盘。另外,RDB文件较小,不占用过多的磁盘空间。缺点是当服务器意外断电时,未保存到RDB文件的数据将会丢失。实现时,可以配置Redis定期执行SAVE命令或者通过触发某些事件来自动执行SAVE命令,例如达到一定的时间间隔或者写入的数据量达到一定阈值。 AOF是将Redis的操作日志以追加的方式写入到文件中,记录了数据每次变化的执行语句。AOF的优点是在断电或宕机等情况下,可以通过重新执行AOF文件中的操作日志来恢复数据,从而减少数据丢失的风险。此外,AOF支持数据的持续时间点,可以通过配置来实现不同的持久化策略。缺点是AOF文件相对于RDB文件较大,并且在恢复大型数据集时速度较慢。实现时,可以将AOF文件通过BGREWRITEAOF命令重新生成一个新的AOF文件,使文件体积减小。 综上所述,RDB适用于对数据恢复速度要求较高,且可以接受部分数据丢失的场景,而AOF适用于对数据完整性要求较高的场景。在实际应用中,可以根据具体需求选择适合的持久化方式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值