三、Redis持久化

这篇具有很好参考价值的文章主要介绍了三、Redis持久化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Redis持久化的原理

1、RDB方式:

2、AOF方式:

二、redis 持久化配置

1、RDB持久化相关配置

2、AOF持久化相关配置


一、Redis持久化的原理

        Redis默认情况下,是把数据存储在内存中的,所有数据的写入,查询等操作都是直接操作内存。存在的问题就是,假如断电后,数据即丢失,为了解决这个问题,Redis提供了向磁盘中写入数据的方式,即持久化机制。Redis持久化机制的方式有两种,RDB和AOF

1、RDB方式:

        默认启动的数据持久化方式,基于时间的快照,只保留当前最新的一次快照,根据配置文件指定策略,它定期将内存中的数据快照到磁盘上的二进制文件

        具体实现过程:Redis主进程先fork出一个子进程,子进程将内存的数据保存为一个临时文件,然后将临时文件写入到磁盘上中,最后用这个临时文件替换原来的RDB文件。

优点:

  • RDB 快照 保存了某个时间点的数据,可以通过脚本执行 bgsave 非 阻塞 或者 save( 阻塞 命令自定义时间点备份,可以保留多个备份,当出现问题可以恢复到不同时间点的版本。
  • 可以最大化 IO的性能,因为父进程在保存 RDB 文件的时候唯一要做的是 fork 出一个子进程,然后的操作都会有这个子进程操作,父进程无需任何的 IO操作,RDB在大量数据比如几个G的数据,恢复的速度比AOF的快。

缺点:文章来源地址https://www.toymoban.com/news/detail-848412.html

  • 存在数据丢失的风险,因为RDB文件是定期生成的,如果Redis意外崩溃,最近一次生成RDB文件之后的数据可能会丢失。
  • RDB文件的恢复速度可能较慢,特别是当数据集较大时,fork子进程可能需要耗费大量的时间和内存。

2、AOF方式:

        AOF持久化将Redis服务器接收到的每个写命令追加到文件末尾。这个AOF文件是一个以文本方式记录Redis操作的日志文件,它可以重现服务器从启动到当前的所有写命令。因此AOF文件会随着时间的增长而文件大小不断扩大,并且可能会造成额外的数据记录。但是Redis还有一个机制,可以自动的扫描AOF文件,并且把冗余的操作进行合并,该机制由bgrewriteof命令实现,该命令在执行后,会将Redis中的数据以命令的方式保存起来,并替换原有的文件。

优点:

  • 提供更高级别的持久性,能够在故障发生时提供更好的数据恢复保证。
  • 可以配置不同级别的同步策略,从而实现不同程度的性能和数据安全之间的权衡。

缺点:

  • AOF文件通常比RDB文件更大。
  • 在恢复大型AOF文件时,加载数据的速度可能会较慢。

二、redis 持久化配置

1、RDB持久化相关配置

在redis.conf中

1、save
RDB持久化主要是通过save参数配置,
save后面第一个参数为时间,单位是秒,第二个参数为改动次数。
因此,第一行表示在900秒内,改动次数超过1此时,就进行持久化备份,
第二行表示在300秒内,改动次数超过10次,就进行持久化备份,
第三行表示在60秒内,改动次数超过10000次,就进行持久化备份。
通常而言,改动次数越多,所需要时间就会越短。

2、stop-writes-on-bgsave-error yes
当该参数设置为yes时,在进行RDB备份的时候,一旦发生错误,就会停止写操作。

3、rdbcompression yes
当该参数设置为yes时,RDB持久化备份会进行压缩,这个过程会消耗CPU资源,但是会节省存储空间。

4、rdbchecksum yes
当该参数设置为yes时,Redis在生成RDB备份文件时会生成校验信息,在启动加载RDB文件时,会对RDB文件的校验码进行检查,只有校验检验成功,才会启动Redis,该参数会导致Redis启动变慢,但是可以防止错误。

5、dbfilename dump.rdb
该参数定义了RDB文件的名称。

6、rdb-del-sync-files no
用于控制在RDB持久化时是否同步删除旧的RDB文件。当设置为no时,Redis在生成新的RDB文件之前不会删除旧的RDB文件。这个参数的默认值是yes,表示生成新的RDB文件之前会同步删除旧的RDB文件。

7、dir ./
该参数定义了RDB文件的存放路径。

2、AOF持久化相关配置

1、appendonly no
该参数定义了是否开启AOF持久化,为NO,表示不开启AOF持久化,为YES,表示开启AOF持久化,默认为NO,表示不开启AOF持久化。

2、appendfilename "appendonly.aof"
该参数定义了AOF持久化的写入文件。

3、appendfsync everysec
表示何时进行持久化,当参数为always时,每次收到写命令时,立即进行AOF持久化备份,这样做可以最大程度上防止数据丢失,但是会造成性能下降;
当该参数为everysec时,表示每秒钟写一次,不管这一秒收到多少个数据写请求;
当该参数为NO时,表示由操作系统决定何时进行持久化备份。

4、no-appendfsync-on-rewrite no
当该参数为yes时,表示在重写时,对于新的写操作不做同步,而是暂时存放在内存中。
5、auto-aof-rewrite-percentage 100

6、auto-aof-rewrite-min-size 64mb
该参数也是定义了AOF持久化的时机,后面跟的是一个大小,比如当该值为63mb时,表示当文件为63mb时会进行持久化操作。

到了这里,关于三、Redis持久化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Redis(概述、应用场景、线程模式、数据持久化、数据一致、事务、集群、哨兵、key过期策略、缓存穿透、击穿、雪崩)

    Redis(概述、应用场景、线程模式、数据持久化、数据一致、事务、集群、哨兵、key过期策略、缓存穿透、击穿、雪崩)

    目录 Redis概述 应用场景 Redis的线程模式 数据持久化 1.Rdb(Redis DataBase) 2.Aof(Append Only File) mysql与redis保持数据一致 redis事务 主从复制(Redis集群) 哨兵模式 key过期策略 缓存穿透、击穿、雪崩 1.缓存穿透:缓存中没有,在mysql中也没有 2.缓存击穿:数据在数据库中存在,某个

    2024年01月16日
    浏览(15)
  • Redis支持的数据结构有哪些?Redis使用单线程还是多线程?Redis的持久化机制有哪些?Redis的缓存淘汰策略有哪些?

    Redis支持的数据结构包括: 字符串(string):存储一个字符串。 列表(list):按照插入顺序存储多个字符串。 集合(set):存储多个不重复的字符串。 有序集合(sorted set):存储多个不重复的字符串,并为每个字符串关联一个分数,可以根据分数进行排序。 哈希表(has

    2024年02月12日
    浏览(26)
  • 《分布式缓存(一)- Redis的持久化》

    Redis有两种持久化方案: RDB持久化 AOF持久化 RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例

    2024年02月06日
    浏览(7)
  • Redis-持久化、主从集群、哨兵模式、分片集群、分布式缓存

    Redis-持久化、主从集群、哨兵模式、分片集群、分布式缓存

    数据丢失问题 : Redis是内存存储,服务重启可能会丢失数据 解决方案:利用Redis数据持久化,将数据写入磁盘 并发能力问题 : 单节点Redis并发能力虽然不错,单也无法满足如618这样的高并发场景 解决方案:搭建主从集群,实现读写分离 故障恢复问题 : 如果Redis宕机,则服

    2024年02月16日
    浏览(12)
  • Redis从入门到精通(十三)Redis分布式缓存(一)RDB和AOF持久化、Redis主从集群的搭建与原理分析

    Redis从入门到精通(十三)Redis分布式缓存(一)RDB和AOF持久化、Redis主从集群的搭建与原理分析

    单机Redis存在四大问题: 1)数据丢失问题; 2)并发能力问题; 3)故障恢复问题; 4)存储能力问题。 而Redis分布式缓存,即基于Redis集群来解决单机Redis存在的问题: 1)数据丢失问题:实现Redis数据持久化; 2)并发能力问题:搭建主从集群,实现读写分离; 3)故障恢复问

    2024年04月12日
    浏览(10)
  • 【2023】Redis数据持久化

    Redis是基于内存的NoSQL数据库,读写速度很快,但是存储在内存中的Redis数据会在服务器重启后丢失。 然而在一些场景中,需要长久的保存数据,所以需要把内存中的数据持久化的保存在硬盘中。 Redis持久化提供两种方式: 1️⃣:AOF(Append Only File)只追加文件 2️⃣:RDB(

    2024年02月10日
    浏览(13)
  • redis数据安全(一)数据持久化

    redis数据安全(一)数据持久化

     一、Redis数据安全措施: 1、将数据持久化至硬盘 2、将数据复制至其他机器; 复制是在数据持久化的基础上进行的。 二、将数据持久化至硬盘 1、介绍:Redis是一个基于内存的数据库,它的数据是存放在内存中,内存有个问题就是关闭服务或者断电会丢失。Redis的数据也支持

    2024年01月20日
    浏览(13)
  • Redis 7 教程 数据持久化

    Redis 7 教程 数据持久化

            RDB 持久化以指定的时间间隔执行数据集的时间点快照 。         把某一时刻的数据和状态以文件的形式写到磁盘上,即使出现故障宕机,快照文件也不会丢失,数据的可靠性得到保证。快照文件就是RDB(Redis DataBase)文件(dump.rdb)          在指定的时间间隔内将

    2024年02月11日
    浏览(15)
  • Redis集群(分布式缓存):详解持久化、主从同步原理、哨兵机制、Cluster分片集群,实现高并发高可用

    Redis集群(分布式缓存):详解持久化、主从同步原理、哨兵机制、Cluster分片集群,实现高并发高可用

            单机式Redis存在以下问题,因此需要Redis集群化来解决这些问题        Redis数据快照,简单来说就是 把内存中的所有数据都记录到磁盘中 。当Redis实例故障重启后,从 磁盘读取快照文件,恢复数据 。快照文件称为RDB文件,默认是保存在当前运行目录。     (1)

    2024年02月08日
    浏览(11)
  • redis原理(四)数据安全之数据持久化

    redis原理(四)数据安全之数据持久化

    目录 一、RDB快照持久化 原理 二、RDB快照持久化配置(redis.conf): 三、触发RDB备份: 1、自动备份,需配置备份规则: 2、手动执行命令备份(save | bgsave): 3、flushall命令: 四、RDB的备份恢复: 五、RDB优缺点: 以下配置以Redis-x64-3.2.100.zip为例,介绍下 RDB快照持久化  一、

    2024年01月17日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包