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

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

3天内不再提示

Redis持久化RDB方式介绍

麦辣鸡腿堡 来源:七哥聊编程 作者:七哥聊编程 2023-10-09 14:56 次阅读

Redis持久化

Redis是一个内存数据库,为了保证数据的持久性,它提供了两种持久化方案:

RDB 方式(默认)

RDB方式是通过快照( snapshotting )完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘。

触发快照的时机
  1. 符合自定义配置的快照规则 redis.conf
  2. 执行 save 或者 bgsave 命令
  3. 执行 flushall 命令
  4. 第一次执行主从复制操作
原理图

图片

设置快照保存规则

快照规则是配置在 redis.conf 文件中的,我这里我截取对应的代码片段,给大家看下。

#
# Save the DB on disk:
# 
# 持久化操作设置,下面的配置分别表示:900秒内至少一个键被修改则进行快照,5分钟内至少10个键被修改则进行快照,1分钟内10000个键被更改则进行快照

save 900 1
save 300 10
save 60 10000

注意事项:

  1. Redis在进行快照过程中不会修改RDB文件,只有快照结束后才会将旧的快照文件替换为新的,也就是说任何时候RDB文件都是完成的,不存在中间状态,保证了数据的完整性。
  2. 我们可以通过定时备份RDB文件来实现Redis数据库的备份,RDB文件是经过压缩的二进制文件 ,占用空间会小于内存中的数据,更加利于传输。
RDB优缺点

缺点 :使用RDB方式进行持久化,如果看明白了其备份原理图,则很容易看出 Redis如果异常宕机或者重启 ,就会丢失最后一次快照之后的所有数据修改。这个时候我们就需要根据具体的应用场景,通过组合设置自动快照条件的方式来将可能发生的数据损失控制在能够接受范围。如果数据相对来说比较重要,希望将损失降到最小,则可以使用 AOF 方式进行持久化,下面我们会聊到这种方式。

优点: RDB最大化了Redis性能,父进程在保存快照生成RDB文件时唯一要做的就是fork出一个子进程,然后这个子进程就会处理接下来的所有文件保存工作,父进程无需执行任何磁盘 I/O 操作。同时这也是一个缺点,如果数据集比较大的时候,fork可能比较耗时,造成服务器在一段时间内会停止处理客户端请求。

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

    关注

    8

    文章

    6512

    浏览量

    87601
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72767
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63371
  • Redis
    +关注

    关注

    0

    文章

    362

    浏览量

    10496
收藏 人收藏

    评论

    相关推荐

    Redis坚持持久方式概述

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

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

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

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

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

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

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

    如何开启RDB持久方式

      RDB快照(Redis DataBase) RDB是一种快照存储持久方式,具体就是将Redis
    的头像 发表于 06-25 11:52 555次阅读
    如何开启<b class='flag-5'>RDB</b><b class='flag-5'>持久</b>化<b class='flag-5'>方式</b>

    Redis持久化机制介绍

    Redis持久化机制? 为了能够重用Redis数据,或者防止系统故障,我们需要将Redis中的数据写入到磁盘空间中,即持久化。
    的头像 发表于 10-09 11:44 309次阅读
    <b class='flag-5'>Redis</b><b class='flag-5'>持久</b>化机制<b class='flag-5'>介绍</b>

    redis持久方式有几种及配置

    Redis是一种内存数据库,为了避免数据丢失,需要将数据持久化到磁盘上。Redis提供了两种持久方式
    的头像 发表于 12-04 11:09 330次阅读

    redis两种持久方式的区别

    的完整性和一致性。 Redis提供了两种持久方式RDBRedis Database)和AOF(Append Only File)。这两
    的头像 发表于 12-04 11:12 250次阅读

    redis持久方式RDB和AOF的区别

    Redis 是一个高性能的键值对数据库,提供了两种持久方式RDB 和 AOF。RDB 是将 Redi
    的头像 发表于 12-04 16:25 298次阅读

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

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

    redis持久化机制优缺点

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

    redis里数据什么时候持久

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

    云容器redis持久化配置

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

    redis数据会自动清除吗

    Redis数据不会自动清除,但它提供了一些机制来管理数据的过期和淘汰。在默认情况下,Redis只会在内存中存储数据,并且没有自动清除机制。 Redis数据持久化和过期:
    的头像 发表于 12-05 10:13 978次阅读

    redis持久rdb和aof一起用好处

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