2023-06-07:Redis 持久化方式有哪些?以及有什么区别?

答案2023-06-07:

Redis提供了两种持久化机制:RDB和AOF。

RDB

RDB持久化是将Redis当前进程中的数据生成快照并保存到硬盘的过程。快照指的是Redis在某一时刻的内存状态的记录,类似于拍照一样把数据保存下来,因此也被称为Redis的数据库快照(Redis DataBase Dump),简称RDB。该机制使得Redis能够将内存中的数据保存到磁盘上并在需要的时候加载该数据从而恢复Redis的状态。

优点:

Redis RDB机制只需要一个文件dump.rdb即可对Redis的内存数据进行持久化存储,并且具有容灾性好的特点,因为该文件可以保存到安全的磁盘上。

此外,RDB机制的性能也相对较高,其实现通过fork子进程的方式,在子进程中完成写操作,让主进程继续处理命令,从而充分利用了系统的IO性能。

特别是在数据集较大的情况下,相比AOF机制,RDB的启动效率更高。

缺点:

相对于AOF机制而言,RDB机制的数据安全性可能会稍差一些。因为RDB机制是间隔一定时间(或手动触发)进行一次持久化,如果在两次持久化之间Redis发生故障,可能会导致数据的丢失。因此,RDB机制更适合对数据安全性要求不高的场景。但需要注意的是,在Redis运行时也可以通过调用SAVE或BGSAVE命令来手动触发RDB存储,以增加数据的安全性。

AOF

AOF (Append Only File)持久化机制以日志的形式记录每次写操作,当Redis服务重启时,会根据记录的日志重新执行AOF文件中的命令来恢复数据。相比于RDB机制,AOF机制主要解决了数据持久化时的实时性问题,因此已经成为了Redis持久化的主流方式之一。AOF将Redis的每一次写操作记录到文件中,避免了在数据丢失时的大规模数据损失,因此对于对数据安全性要求比较高的场景,使用AOF机制是更好的选择。

缺点:

1.AOF文件通常比RDB文件要大,并且在重启时恢复速度相对较慢。这是由于AOF机制需要不断地将写操作记录追加到文件中,从而导致了文件大小的增长。实际上,Redis提供了AOF重写机制(AOF Rewrite),可以通过压缩AOF文件来减小文件大小和恢复时间。

2.数据集比较大时,使用AOF机制的启动效率可能会较低。这是因为AOF机制通常需要恢复文件中所有的写操作,而数据集比较大时,AOF文件的体积也会随之增大,导致恢复时间变长。与之相比,RDB机制则具有较好的启动效率,因为仅需要加载一次快照即可完成恢复。

2023-06-07:Redis 持久化方式有哪些?以及有什么区别?的更多相关文章

  1. 【Redis篇】Redis持久化方式AOF和RDB

    一.前述 持久化概念:将数据从掉电易失的内存存放到能够永久存储的设备上. Redis持久化方式RDB(Redis DB)   hdfs:    fsimageAOF(AppendOnlyFile)   ...

  2. Redis持久化方式的选择

    本文将介绍Redis持久化的两种方式:快照持久化和AOF持久化,并对两种方法进行分析和对比,方便在实际中做出选择. 持久化 什么是持久化 Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘 ...

  3. redis 持久化方式

    对于persistence持久化存储,Redis提供了两种持久化方法: Redis DataBase(简称RDB) 执行机制:快照,直接将databases中的key-value的二进制形式存储在了r ...

  4. Redis持久化方式RDB和AOF

    Redis 持久化 RDB(快照) 优点 rdb是可进行压缩的二进制文件,表示Redis在某一个时间点的数据快照.非常使用与备份,灾难恢复等场景.比如使用定时任务执行bgsave并备份rdb到serv ...

  5. Redis持久化方式--RDB和AOF

    转载于:https://www.cnblogs.com/xingzc/p/5988080.html Redis提供了RDB持久化和AOF持久化 RDB机制的优势和略施 RDB持久化是指在指定的时间间隔 ...

  6. redis持久化方式与优缺点

    Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化.redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式:二是Appen ...

  7. iOS数据持久化方式及class_copyIvarList与class_copyPropertyList的区别

    iOS数据持久化方式:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite3CoreData沙盒:iOS程序默认情况下只能访问自己的程序目录,这 ...

  8. Redis持久化方式

    Snapsotting(快照)方式 snapsotting是默认方式,(把数据做一个备份,将数据存储在文件) 这种方式将内存中数据照快照方式写到二进制文件中.默认的文件名为"dump.rdb ...

  9. redis——持久化方式RDB与AOF分析

    https://blog.csdn.net/u014229282/article/details/81121214 redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 ...

  10. 20190930-02 Redis持久化方式一:RDB及修改RDB的默认持久化策略 000 032

随机推荐

  1. 分布式 WEB应用中Session(会话管理)的变迁之路

    一.Session 介绍 Session 一词直译为 "会话",意指有始有终的一系列动作/消息.Session 是 Web 应用蓬勃发展的产物之一.在 Web 应用中隐含有&quo ...

  2. fluter usage---->动态更换Theme

    应用中切换深色主题和暗色主题是比较常见的操作,今天我们就来学习一下Flutter中动态的切换主题. Simple Theme import 'package:flutter/material.dart ...

  3. OWASP TOP 10 2021

    OWASP TOP 10 2021 2021 年的 TOP 10 中有 3 个新类别.4 个更改了名称和范围的类别以及一些合并. A01. 失效的访问控制 Broken Access Control ...

  4. JSTL标签fmt:formatDate格式化日期出错

    现象&背景: 异常: "org.apache.jasper.JasperException: 在 [115] 行处理 [/WEB-INF/jsp/modules/receivedya ...

  5. Python简易学生管理系统

    目录结构: 1. 学生文件 student.py # 学生类 class Student(object): # 存放学生信息 student_info = {} # 学生初始化方法 def __ini ...

  6. Burp Suite最新版本专业版激活2022.12.1附原文件

    Burp Suite 攻击web 应用程序的集成平台 Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具.Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程 ...

  7. linux发行版中的i386/i686/x86-64/的区别

    在yum上找32位的i386找不到,看到i686以为是64位呢,原来它也是32位啊 i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持. 备注: 1. ...

  8. Django笔记三十二之session登录验证操作

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十二之session登录验证操作 这一篇笔记将介绍 session 相关的内容,包括如何在系统中使用 session,以及利用 sess ...

  9. C# 手写识别方案整理

    书写识别,网上的大佬们都有输出. 书写识别存在的2个问题: 直接拿官网的案例(将 Windows Ink 笔划识别为文本和形状 - Windows apps | Microsoft Learn),会发 ...

  10. C# 几种获取电脑内存、CPU信息的方案

    计数器.WMI 获取设备的内存信息,如系统可用运行内存: 1 public static async Task<double> GetMemoryAvailableAsync(FileSi ...