0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Redis持久化机制介绍

麦辣鸡腿堡 来源:程序员库森 作者:程序员库森 2023-10-09 11:44 次阅读

Redis持久化机制?

为了能够重用Redis数据,或者防止系统故障,我们需要将Redis中的数据写入到磁盘空间中,即持久化。Redis提供了两种不同的持久化方法可以将数据存储在磁盘中,一种叫快照RDB,另一种叫只追加文件AOF。

RDB

在指定的时间间隔内将内存中的数据集快照写入磁盘(Snapshot),它恢复时是将快照文件直接读到内存里。

优势:适合大规模的数据恢复;对数据完整性和一致性要求不高

劣势:在一定间隔时间做一次备份,所以如果Redis意外down掉的话,就会丢失最后一次快照后的所有修改。

AOF

以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

AOF采用文件追加方式,文件会越来越大,为避免出现此种情况,新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集。

优势

每修改同步:appendfsync always 同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但数据完整性比较好。

每秒同步:appendfsync everysec 异步操作,每秒记录,如果一秒内宕机,有数据丢失。

不同步:appendfsync no 从不同步。

劣势

相同数据集的数据而言aof文件要远大于rdb文件,恢复速度慢于rdb。

aof运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同。

如何选择RDB和AOF

如果是数据不那么敏感,且可以从其他地方重新生成补回的,那么可以关闭持久化。

如果是数据比较重要,不想再从其他地方获取,且可以承受数分钟的数据丢失,比如缓存等,那么可以只使用RDB。

如果是用做内存数据库,要使用Redis的持久化,建议是RDB和AOF都开启,或者定期执行bgsave做快照备份,RDB方式更适合做数据的备份,AOF可以保证数据的不丢失。

Redis4.0 对于持久化机制的优化

Redis4.0相对与3.X版本其中一个比较大的变化是4.0添加了新的混合持久化方式。

简单的说:新的AOF文件前半段是RDB格式的全量数据后半段是AOF格式的增量数据,如下图:

图片

优势:混合持久化结合了RDB持久化 和 AOF 持久化的优点,
由于绝大部分都是RDB格式,加载速度快,同时结合AOF,增量的数据以AOF方式保存了,数据更少的丢失。

劣势:兼容性差,一旦开启了混合持久化,在4.0之前版本都不识别该aof文件,同时由于前部分是RDB格式,阅读性较差。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72774
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63374
  • Redis
    +关注

    关注

    0

    文章

    363

    浏览量

    10496
收藏 人收藏

    评论

    相关推荐

    redis概述

    REmote DIctionary Server(Redis)是一个基于key-value键值对的持久数据库存储系统。redis和大名鼎鼎的Memcached缓存服务软件很像,但是
    发表于 07-17 07:38

    Redis坚持持久方式概述

    Redis 持久
    发表于 09-25 17:04

    Redis的发布订阅机制

    Redis之发布订阅机制
    发表于 06-11 13:21

    如何使得redis中的数据不再有

    ,原因是redis持久功能导致的,所谓的持久就是redis在系统关闭的时候把数据存储到硬盘
    发表于 11-05 08:50

    Redis持久机制的实现原理和使用技巧

    Redis将数据存储在内存中,宕机或重启都会使内存数据全部丢失, Redis持久机制用来保证数据不会因为故障而丢失。
    的头像 发表于 09-13 16:42 827次阅读

    谈谈Redis怎样配置实现主从复制?

    之前总结过redis持久机制:深度剖析Redis持久机制
    发表于 01-31 11:31 467次阅读

    Redis持久化分为两种:RDB和AOF

    Redis持久化,一个老掉牙的问题,但是面试官就是喜欢问。这也是我们学Redis必会的一个知识点。
    的头像 发表于 02-21 09:22 438次阅读

    Redis持久化RDB方式介绍

    Redis持久Redis是一个内存数据库,为了保证数据的持久性,它提供了两种持久化方案: RDB 方式(默认) RDB方式是通过快照(
    的头像 发表于 10-09 14:56 262次阅读
    <b class='flag-5'>Redis</b><b class='flag-5'>持久</b>化RDB方式<b class='flag-5'>介绍</b>

    redis两种持久化方式的区别

    Redis是一款高性能、开源的键值存储数据库,它支持多种数据结构,并且具有高效的内存读写以及持久化功能。Redis持久机制可以确保数据的
    的头像 发表于 12-04 11:12 252次阅读

    redis持久化方式RDB和AOF的区别

    Redis 是一个高性能的键值对数据库,提供了两种持久化方式:RDB 和 AOF。RDB 是将 Redis 的数据快照保存到磁盘上,而 AOF 则是将 Redis 的操作命令追加到文件
    的头像 发表于 12-04 16:25 299次阅读

    redis持久机制和如何实现持久

    Redis是一款高性能的非关系型数据库,其持久机制是保证数据在重启后仍能够保存的关键。Redis提供了两种方式来实现持久化:RDB(
    的头像 发表于 12-05 10:02 258次阅读

    redis持久机制优缺点

    Redis是一个基于内存的高性能键值存储系统,它提供了多种持久机制来保证数据的可靠性。本文将详细介绍Redis
    的头像 发表于 12-05 10:03 269次阅读

    redis里数据什么时候持久

    Redis是一种开源的高性能、非关系型内存数据库,它使用了键值对存储数据,并且支持多种数据结构。 Redis提供了持久机制,以确保在服务器重启后数据不会丢失。
    的头像 发表于 12-05 10:05 234次阅读

    云容器redis持久化配置

    丢失。 Redis提供了不同的持久机制,可以根据需要进行配置。本文将详细介绍云容器中Redis持久
    的头像 发表于 12-05 10:07 256次阅读

    redis持久化rdb和aof一起用好处

    Redis是一个流行的内存数据库,它通过使用不同的持久机制来确保数据的持久性。RDB和AOF是Redis中两种常用的
    的头像 发表于 12-05 10:17 323次阅读