返回顶部
首页 > 资讯 > 数据库 >内存型数据库Redis持久化小结
  • 258
分享到

内存型数据库Redis持久化小结

小结持久内存 2022-06-04 17:06:49 258人浏览 八月长安
摘要

因为Redis是内存型数据库,所以为了防止因为系统崩溃等原因导致数据丢失的问题,Redis提供了两种不同的持久化方法来将数据存储在硬盘里面,一种方法是快照(RDB),它可以将存在于某一个时刻的所有数据都写入

因为Redis是内存型数据库,所以为了防止因为系统崩溃等原因导致数据丢失的问题,Redis提供了两种不同的持久化方法来将数据存储在硬盘里面,一种方法是快照(RDB),它可以将存在于某一个时刻的所有数据都写入到硬盘里面,另外一种方法是只追加文件(AOF),它会在执行写命令时,将被执行的写命令都写入到硬盘里面。

快照持久化

Redis可以通过创建快照来获得在内存里面的数据在某一个时间点上的副本。在创建快照之后,用户可以对快照进行备份,可以将快照复制到其它服务器从而创建具有相同数据的服务器副本,还可以将快照留在原地以便重启服务器时使用。

有两个命令可以用于生成RDB文件,一个是SAVE,另外一个BGSAVE。

在只使用快照持久化来保存数据时,如果系统真的发生崩溃,用户将丢失最近一次生成快照之后更改的所有数据。因此,快照持久化只适用于那些即使丢失一部分数据也不会造成问题的应用程序。

SAVE

特点:SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕,在服务器进程阻塞期间,服务器不能处理任何命令请求。

缺点:服务器持久化期间无法接受其它请求。

BGSAVE

特点:BGSAVE命令则会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程则继续处理命令请求。

缺点:创建子进程所耗费的时间会随着Redis占用的内存而增加。

AOF持久化

AOF持久化会将被执行的写命令写到AOF文件的末尾,以此来纪录数据所发生的变化,因此,Redis只要从头到尾重新执行一次AOF文件所包含的所有写命令,就可以恢复AOF文件所记录的数据集。

在设置同步频率的时候,存在三个选项:

选项 同步频率 always 每个Redis写命令都要同步写入硬盘,但是这样做会占用Redis所拥有的内存,严重降低Redis的速度 everysec 每秒执行一次同步,显式地将多个写命令同步到硬盘 no 让操作系统来决定应该何时进行同步

最好使用everysec,既能避免每次都写入所造成的性能影响,又能避免操作系统崩溃所导致的可能丢失不定量数据,其即使系统崩溃,用户最多只会丢失一秒之内产生的数据,当硬盘忙于执行写入操作的时候,Redis还会优雅的放慢自己的速度以便适应硬盘的最大写入速度。

缺点:因为Redis会不断的将被执行的写命令纪录到AOF文件里面,所以随着Redis不断执行,AOF文件的体积也会不断增长,极端条件下,AOF甚至可能会用完硬盘的所有可用空间。

为了解决上面的缺点,Redis提供了BGREWRITEAOF命令,这个命令会通过移除AOF文件中的冗余命令来重写AOF文件,使得AOF文件尽可能的小。它的原理和BGSAVE命令相似,Redis会创建一个子进程,然后由子进程负责对AOF文件进行重写,因为AOF文件重写也需要用到子进程,所以同样存在快照持久化因为创建子进程所导致的性能问题和内存占用问题。

您可能感兴趣的文档:

--结束END--

本文标题: 内存型数据库Redis持久化小结

本文链接: https://lsjlt.com/news/11765.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 内存型数据库Redis持久化小结
    因为Redis是内存型数据库,所以为了防止因为系统崩溃等原因导致数据丢失的问题,Redis提供了两种不同的持久化方法来将数据存储在硬盘里面,一种方法是快照(RDB),它可以将存在于某一个时刻的所有数据都写入...
    99+
    2022-06-04
    小结 持久 内存
  • 内存型数据库Redis持久化的示例分析
    这篇文章主要为大家展示了“内存型数据库Redis持久化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“内存型数据库Redis持久化的示例分析”这篇文章吧...
    99+
    2024-04-02
  • Redis(一):初识Redis内存数据库与持久化
    什么是Redis内存数据库?Redis,本质上上一个KEY-VALUE类型的内存数据库,整个数据库都加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因此它是纯内存操作,Red...
    99+
    2024-04-02
  • 浅谈redis内存数据的持久化方式
    一、概述 Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存储在内存中的数据将会丢失,在很多情况下是无法容忍这样的事情的。所以,我们需要将内存中的数据持久化!典...
    99+
    2024-04-02
  • redis如何持久化数据库
    redis持久化数据库的方法:快照的方式持久化到磁盘,配置代码如下:save 900 1save 300 10save 60 10000上面的配置规则意思如下:# In the example below the behaviour wil...
    99+
    2024-04-02
  • redis数据持久化
    1 redis是内存型的数据库 redis数据放在内存中 重启服务器丢失数据 重启redis服务丢失数据 断电丢失数据 为了防止redis数据丢失, 进行持久化, 所以将数据写入到一个文件中来实现 2 rdb持久化 在配置文件中, 添加rd...
    99+
    2021-06-10
    redis数据持久化
  • Redis支持哪种类型的数据持久化
    Redis支持以下几种类型的数据持久化: RDB持久化:在指定时间间隔内将内存中的数据保存到磁盘上,生成一个快照文件。默认情况下...
    99+
    2024-03-11
    Redis
  • redis数据库持久化问题处理
    redis数据库问题整理 一、数据无法持久化1、背景介绍:经开发人员告知redis有3万多条数据无法写入内存,数据持久化停滞状态。2、排查过程:经过排查redis日志,发现报错信息如下,经过查询得知为此报错为7月10日导入大量数据后导致的,...
    99+
    2016-06-04
    redis数据库持久化问题处理 数据库入门 数据库基础教程 数据库 mysql
  • redis怎么持久化数据
    Redis被称为是内存数据库,那是因为它会将其所有数据存储在内存里,因此Redis具有强劲的速度性能,但是,也正因为数据存储在内存中,当Redis重启后,所有存储在内存的数据就会丢失。为了使得数据持久化,Redis提供了两种方式:RDB方式...
    99+
    2016-01-14
    redis
  • Spring+Redis集成怎么实现关系型数据库持久化
    这篇文章主要讲解了“Spring+Redis集成怎么实现关系型数据库持久化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring+Redis集成怎么实现关系型数据库持久化”吧!Redis...
    99+
    2023-06-03
  • Springboot整合Redis与数据持久化
    目录Springboot整合Redis使用json方式存储序列化方式存储数据mysql与Redis一致性解决同步问题Redis持久化机制全量同步与增量同步RDB与AOFRDBAOFSpringboot整合Redis 有两...
    99+
    2022-07-28
    Springboot 整合Redis Redis 数据持久化
  • 怎么将redis中数据持久化
    Redis支持多种数据持久化方式,可以将数据持久化到磁盘以确保数据的安全性。以下是两种常用的持久化方式:1. RDB持久化(Redi...
    99+
    2023-08-30
    redis
  • Redis怎么实现数据持久化
    Redis 有两种数据持久化的方式:RDB持久化和AOF持久化。 RDB持久化: RDB持久化是通过定期将内存中的数据快照写入磁...
    99+
    2024-05-07
    Redis
  • redis内存数据库
    ===> Redis内存数据库简介:             &nbs...
    99+
    2024-04-02
  • redis运行在内存如何持久化到磁盘
    redis运行在内存持久化到磁盘的方法:通过配置文件告诉redis通过fsync函数强制os写入到磁盘。appendonly yes #启用aof持久化方式# appendfsync always #每次收到写命令就立即强制写入磁盘,最慢的...
    99+
    2024-04-02
  • redis怎么存储结构化数据库
    Redis是一个键值存储系统,它并不是一个结构化数据库,但是可以使用一些技巧来存储结构化数据。1. 使用Hash数据结构:可以将结构...
    99+
    2023-09-05
    redis 数据库
  • 关于Redis数据库三种持久化方案介绍
    目录一、回顾Redis二、方案一:bgsave三、方案二:配置文件rdb四、方案三:aof总结一、回顾Redis 1、redis的特点 redis是一个内存中的数据结构存储系统。优点...
    99+
    2024-04-02
  • Android持久化存储(3)SQLite数据库的使用
    1.什么是SQlite SQLite是由C语言编写的一款轻型数据库,因占用资源小,处理速度快,功能齐全,特别适用于移动设备,最重要的是开源,任何...
    99+
    2022-06-06
    存储 sqlite数据库 SQLite Android
  • redis有几种数据持久化方式
    今天就跟大家聊聊有关redis的数据持久化方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。redis提供了两种数据持久化的方式,分别是RDB(Re...
    99+
    2024-04-02
  • redis数据持久化的实现方法
    小编给大家分享一下redis数据持久化的实现方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis实现数据持久化的两种实现方式:RDB:指定的时间间隔内保存数据快照AOF:先把命令追加到...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作