首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java开发者杂谈

    ActiveMQ专题2: 持久

    当然,作为一个如此活跃的开源消息中间件,在实现JMS基本规范之后,必然会通过扩展的方式来实现Topic的持久订阅。 而所谓的deliveryMode持久和订阅持久还是两个不同的概念。 ,原producer产生的消息丢失 ​ 持久和非持久最终队列控制台分别如下: ? 而支持持久的设置,只要消息没有被消费,重启mq,仍然能被新加入的consumer消费。 订阅持久 ​ JMS的规范是没有要求实现订阅持久的。所幸的是activeMQ实现了这个特性。 个人认为所谓的订阅持久相对于消息的持久,不过是一种伪持久。 : 要实现伪持久订阅,必须先向activeMQ发布持久订阅消息,通过clientId来标识不同的订阅渠道。

    88830发布于 2018-10-08
  • 来自专栏大大刺猬

    redis(2)--持久数据(备份)

    redis持久2种方式: 手动 save/bgsave 设置持久策略 redis持久数据又2种类型, RDB和AOF RDB就是只有键值对 AOF就是操作的命令(包括键值对和命令),相当于 恢复的话就看2.1RDB备份与恢复吧 2. 自动持久数据 自动持久数据可以用RDB或者AOF, 建议2种都用. RDB : 只保留键值对, 可以直接加载到内存,所以恢复的时候就很快. 10 save 60 10000 解释下: 900秒内距离上一次持久变化了1个值则持久 300秒内距离上一次持久变化了10个值则持久 60秒内距离上一次持久变化了10000个值则持久 满足任一条件就持久一次 dir 的值就是持久目录的路径 dbfilename 的值就是rdb持久文件的名字 设置的话就是config set dir "/usr/local/redis/data" 但是不建议再命令行设置 持久 其实用AOF持久的更多一些, 毕竟是把所有操作(get之类的没必要)都记录下来 2.2.1 AOF备份/持久 因为AOF是记录操作的,那么文件会很大, 可以用BGREWRITEAOF来重建

    76430发布于 2020-12-14
  • 来自专栏EffectiveCoding

    Redis 持久之AOF持久&混合持久

    上一篇提到了Redis的RDB持久方式,同时也提到了一点关于AOF的内容。 RDB(snapshotting) 是一种内存快照的方式进行持久,AOF(append-only-file)是通过追加写入命令的方式进行持久,混合持久是指RDB和AOF协同完成持久化工作来发挥各自有点的持久方式 协议格式来保存命令内容的,有兴趣可以看一下: https://redis.io/topics/protocol 很显然,如果命令操作量非常大的时候,与RDB不同,AOF因为是追加命令,所以很大概率上AOF持久文件会越来越大 混合持久: 混合持久是Redis 4.X之后的一个新特性,说是新特性其实更像是一种RDB&AOF的结合,持久文件变成了RDB + AOF,首先由RDB定期完成内存快照的备份,然后再由AOF完成两次 在大多数场景下RDB + AOF的混合持久模式其实还是很合适的。

    1.9K20发布于 2019-07-31
  • 来自专栏EffectiveCoding

    Redis 持久之RDB持久

    Redis 相对于其他NoSQL 内存数据库而言,除了更富的数据结构和速度快之外,Redis 的丰富的持久方案也就一个很显著的优势,Redis 支持RDB、AOF、混合持久三种模式。 RDB(snapshotting) 是一种内存快照的方式进行持久,AOF(append-only-file)是通过追加写入命令的方式进行持久,混合持久是指RDB和AOF协同完成持久化工作来发挥各自有点的持久方式 RDB 持久有自动触发、手动触发两种方式。 自动触发 具体可以看一下redis.conf 中的配置项及对应注释来了解这一部分内容,翻一下注释就很明了了: 当达到如下条件的时候就出发自动持久,这种持久在后台进行的bgsave 先看一下save选项 恢复: 数据恢复的过程,整个Redis 都是被阻塞在那里的,一直到持久完成才正常工作。具体恢复步骤就是把文件移到刚才dir指定的文件下,然后启动redis 就可以啦。

    83420发布于 2019-07-31
  • 来自专栏CSDN搜“看,未来”

    【redis源码学习】持久机制(2):AOF

    文章目录 AOF简介 AOF定时逻辑 AOF 持久过程 命令传播 刷新缓冲区 && 同步磁盘 AOF简介 上一篇讲的RDB是批量的插入数据,但是如果单纯使用就会有一个隐患:突然断电的时候势必要失去一部分数据 RDB做大批量的持久,在下次RDB来之前,用AOF顶上。 此外,redis 还提供了AOF重写功能,如果一个键有多次写入,只保存最后一次写入命令。 这两个方法我们都能想到,不过是怎么实现的呢? AOF 持久过程 三部曲: 命令传播、 刷新AOF缓冲区、 同步磁盘 让我们一个一个来看: 命令传播 feedAppendOnlyFile 函数负责将命令传播到 AOF 缓冲区: void feedAppendOnlyFile /PEXPIRE/EXPIREAT into PEXPIREAT */ buf = catAppendOnlyExpireAtCommand(buf,cmd,argv[1],argv[2] */ tmpargv[0] = createStringObject("SET",3); tmpargv[1] = argv[1]; tmpargv[2]

    46430编辑于 2022-01-10
  • 来自专栏非著名运维

    Docker容器数据持久之Bind Mouting(2

    为什么要做数据持久?  当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始镜像,会加一个全新的读写层来保存数据。 如果想做到数据持久,Docker提供数据卷(Data volume)或者数据容器卷来解决问题,另外还可以通过commit提交一个新的镜像来保存产生的数据。 Docker数据持久方案: 基于本机文件系统的Volume。可以执行Docker create或Docker run时,通过-v参数将主机的目录作为容器的数据卷。 基于本机文件系统的Volume: Data Volume:挂载数据卷 Bind Mouting: 挂载本地目录 数据持久之Bind Mouting:  Bind Mounting 持久的方式,则本地的目录文件和容器中的文件是同步的 /usr/share/nginx/html/test.html 最后: 使用Bind Mounting 持久的方式,则本地的目录文件和容器中的文件是同步的,如果本地的文件做了修改,那么容器中的文件也会修改

    42220编辑于 2022-06-22
  • 来自专栏fixzd

    redis系列:RDB持久与AOF持久

    前言 什么是持久持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。 持久的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。 持久是将程序数据在持久状态和瞬时状态间转换的机制。 Redis提供了两种持久方式 RDB持久(快照) AOF持久(只追加操作的文件 Append-only file) 先来看看RDB持久 RDB持久 RDB持久是指在客户端输入save、bgsave AOF持久 AOF持久是通过保存Redis服务器所执行的写命令来记录数据库状态,也就是每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。 那么我们如何开启AOF持久功能呢?

    76620发布于 2018-08-28
  • 来自专栏fixzd

    redis系列:RDB持久与AOF持久

    前言 什么是持久持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。 持久的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。 持久是将程序数据在持久状态和瞬时状态间转换的机制。 Redis提供了两种持久方式 RDB持久(快照) AOF持久(只追加操作的文件 Append-only file) 先来看看RDB持久 RDB持久 RDB持久是指在客户端输入save AOF持久 AOF持久是通过保存Redis服务器所执行的写命令来记录数据库状态,也就是每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。 那么我们如何开启AOF持久功能呢?

    92310发布于 2018-08-25
  • 来自专栏IT技术订阅

    Redis持久

    一. redis持久的介绍 Redis的持久指的是将内存中redis数据库运行的数据,写到硬盘文件上。 Redis持久的两种方式: 1. RDB:Redis DataBase 默认的持久方式,以二进制的方式将数据写入文件中,每隔一段时间写入一次。 2. 2. RDB对redis对外提供读写服务的时候,影响非常小,因为redis 主进程只需要fork一个子进程出来,让子进程对磁盘io来进行rdb持久 3. AOF机制 3.1 介绍 与快照持久相比,AOF持久 的实时性更好,因此已成为主流的持久方案。 自动触发:如果全部满足的话,就触发自动的AOF重写操作: 1.没有RDB持久/AOF持久在执行,没有bgrewriteaof在进行; 2.当前AOF文件大小要大于redis.conf配置的auto-aof-rewrite-min-size

    1K20编辑于 2022-05-11
  • 来自专栏Golang语言社区

    Golang 持久

    涉及数据存储的的过程称之为持久。下面golang中的数据持久化做简单的介绍。主要包括内存存储,文件存储和数据库存储。 内存持久比较简单,严格来说这也不算是持久,比较程序退出会清空内存,所保存的数据也会消失。这种持久只是相对程序运行时而言。 基本上涉及的都有纯文本,格式文本和二进制文本的读写操作。通过文件持久数据比起内存才是真正的持久。然而很多应用的开发,持久更多还是和数据库打交道。 关于数据库,又是一个很大的话题。 总结 数据持久我们介绍了内存,文件和数据库三种持久方案。其中内存并不是严格意义的持久,但是对于一些需要频繁操作,并且程序启动后就需要处理的数据,可以考虑内存持久。 对于简单的配置,可以使用文件持久,更多时候,数据的持久方案还是依托于数据库。如今数据库种类繁多,无论是sql还是nosql,都需要考虑具体的使用场景。

    2.9K90发布于 2018-03-26
  • 来自专栏desperate633

    深入理解Redis持久Redis 持久

    Redis 持久 Redis 提供了多种不同级别的持久方式: RDB 持久可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 Redis 还可以同时使用 AOF 持久和 RDB 持久。 你甚至可以关闭持久功能,让数据只在服务器运行时存在。 了解 RDB 持久和 AOF 持久之间的异同是非常重要的, 以下几个小节将详细地介绍这这两种持久功能, 并对它们的相同和不同之处进行说明。 从 1.1 版本开始, Redis 增加了一种完全耐久的持久方式: AOF 持久

    96232发布于 2018-08-22
  • 来自专栏云同步

    Redis 持久

            持久就是把内存的数据写到磁盘中,防止服务宕机导致内存数据丢失。         Redis支持两种方式的持久,一种是RDB的方式,一种是AOF的方式。 RDB 是什么         Redis 会单独创建一个子进程(fork)来进行持久,先将数据写入到一个临时文件中,待持久过程完成后,再将这个临时文件内容覆盖到 dump.rdb Fork Fork rdbchecksum:完整性的检查,即数据是否完整性、准确性 save 表示写操作的次数 格式:save 秒 写操作次数 优点 Redis 加载 RDB 恢复数据远远快于 AOF 的方式 使用单独子进程来进行持久 ,主进程不会进行任何 IO 操作,保证了 Redis 的高性能 缺点 RDB方式数据无法做到实时持久。 singleDoc# 《Redis 持久

    28110编辑于 2025-08-01
  • 来自专栏linux学习笔记

    redis持久

    持久化简介 什么是持久 ? 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久 为什么要进行持久? 防止数据的意外丢失,确保数据安全性 应用场景 意外断电,自动备份 持久过程保存什么 1 将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据 2 将数据的操作过程进行保存 与RDB相比可以简单描述为改记录数据为记录数据产生的过程  AOF的主要作用是解决了数据持久的实时性,目前已经是Redis持久的主流方式 AOF写数据过程 image.png AOF写数据三种策略 AOF重写作用  降低磁盘占用量,提高磁盘利用率  提高持久效率,降低持久写时间,提高IO性能  降低数据恢复用时,提高数据恢复效率 AOF重写规则  进程内已超时的数据不再写入文件  忽略无效指令,重写时使用进程内数据直接生成,这样新的AOF文件只保留最终数据的写入命令 如del key1、 hdel key2、srem key3、set key4 111、set key4

    89300发布于 2019-12-07
  • 来自专栏chenchenchen

    redis持久

    RDB 优势:  1.数据库只包含一个文件,通过文件备份策略,定期配置,恢复系统灾难  2.压缩文件转移到其他介质上  3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久的工作 ,避免服务器进程执行 2.效率比rdb低 持久套路 一般我们在生产上采用的持久策略为 (1)master关闭持久 (2)slave开RDB即可,必要的时候AOF和RDB都开启 该策略能够适应绝大部分场景,绝大部分集群架构 为什么这么做 (1)master关闭持久 原因很简单,因为无论哪种持久方式都会影响redis的性能,哪一种持久都会造成CPU卡顿,影响对客户端请求的处理。 RDB持久 RDB持久是将当前进程中的数据生成快照保存到硬盘(因此也称作快照持久),保存的文件后缀是rdb;当Redis重新启动时,可以读取快照文件恢复数据。 AOF持久 RDB持久是将进程数据写入文件,而AOF持久(即Append Only File持久),则是将Redis执行的每次写命令记录到单独的日志文件中。

    74410编辑于 2023-01-30
  • 来自专栏Andromeda的专栏

    Redis 持久

    Redis 提供了两种持久方式,即 RDB(Redis Database)和 AOF(Append-Only File)。 RDB RDB 持久是 Redis 的默认持久方式。 优点:RDB 持久对性能影响较小,生成的 RDB 文件紧凑且易于备份和恢复。 缺点:RDB 持久会将数据保存到一个快照文件中,因此在发生故障时可能会丢失最后一次快照之后的数据。 触发机制:管理员可以根据配置文件设置 AOF 持久的触发方式,例如每次写操作、每秒同步等。 优点:AOF 持久提供了更高的数据安全性,因为可以通过重放 AOF 日志来恢复数据。 \r\nmykey\r\n *4\r\n$4\r\nHMSET\r\n$6\r\nmyhash\r\n$2\r\na1\r\n$3\r\nval\r\n$2\r\na2\r\n$3\r\n123\r\n 因此,在涉及到数据持久性和一致性的场景中,可以根据需求选择合适的同步或异步写模式,以平衡性能和数据可靠性的需求。 混合持久 可以同时使用 RDB 和 AOF 来进行持久

    67710编辑于 2024-01-13
  • 来自专栏java 挖矿之路

    rabiitMq 持久

    其中,RabblitMQ的持久化分为三个部分: 交换器(Exchange)的持久 队列(Queue)的持久 消息(Message)的持久 2. durable:设置是否持久。durable设置为true表示持久,反之是非持久持久可以将交换器存盘,在服务器重启的时候不会丢失相关信息。 答案是设置消息的投递模式为2,即代表持久2)将交换器、队列、消息都设置了持久之后仍然不能百分之百保证数据不丢失,因为当持久的消息正确存入RabbitMQ之后,还需要一段时间(虽然很短,但是不可忽视)才能存入磁盘之中。 3)单单只设置队列持久,重启之后消息会丢失;单单只设置消息的持久,重启之后队列消失,继而消息也丢失。单单设置消息持久而不设置队列的持久显得毫无意义。

    1.1K20发布于 2021-02-24
  • 来自专栏会跳舞的机器人

    Redis持久

    一、Redis的持久 Redis 提供了不同级别的持久方式: RDB持久方式能够在指定的时间间隔能对你的数据进行快照存储. 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久方式. 三、如何选择使用哪种持久方式? 一般来说, 如果想达到足以媲美 PostgreSQL 的数据安全性, 你应该同时使用两种持久功能。 从 1.1 版本开始, Redis 增加了一种完全耐久的持久方式: AOF 持久。 当 Redis 启动时, 如果 RDB 持久和 AOF 持久都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集, 因为 AOF 文件所保存的数据通常是最完整的。

    1.2K20发布于 2018-09-21
  • 来自专栏大数据共享

    RDD持久

    为什么需要持久 所谓的持久,就是将数据进行保存,避免数据丢失。RDD持久并非将数据落盘保存,而是用作缓存。 了解RDD持久前需要先了解什么是RDD? 应用场景: 某个RDD在多个job中重复使用的时候 如何缓存: cache persist 缓存的好处: 如果一个RDD有设置cache\persist,此时rdd所属第一个Job执行完成之后,数据会持久到本地的磁盘 后续RDD所属的其他job在执行的时候会直接将缓存数据拿过来使用而不用重新计算 RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列的形式缓存在 的缓存 rdd2.checkpoint() //进行一个reduce算子操作 val rdd3=rdd2.map(x=>x+10) val rdd4=rdd2.map( //释放 rddx.unpersist(true) //关闭链接 sc.stop() cache与checkpoint的区别: 数据持久的位置不一样: cache是将数据保存在本地内存

    94930编辑于 2022-04-28
  • 来自专栏技术博文

    Redis持久

    Redis 提供了多种不同级别的持久方式: RDB 持久可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 Redis 还可以同时使用 AOF 持久和 RDB 持久。 从 1.1 版本开始, Redis 增加了一种完全耐久的持久方式: AOF 持久。 怎么从 RDB 持久切换到 AOF 持久 在 Redis 2.2 或以上版本,可以在不重启的情况下,从 RDB 切换到 AOF : 为最新的 dump.rdb 文件创建一个备份。 当 Redis 启动时, 如果 RDB 持久和 AOF 持久都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集, 因为 AOF 文件所保存的数据通常是最完整的。

    1.2K40发布于 2018-04-16
  • 来自专栏java 挖矿之路

    redis 持久

    今天这篇文章将为大家介绍Redis持久的两种方案,文章将会从以下五个方面介绍: 什么是RDB,RDB如何实现持久? 什么是AOF,AOF如何实现持久? AOF和RDB的区别。 持久化性能问题和解决方案RDB RDB持久是把当前进程数据生成快照保存到硬盘的过程, 触发RDB持久过程分为手动触发和自动触发。 RDB的缺点 RDB方式数据没办法做到实时持久/秒级持久。 因为bgsave每次运行都要执行fork操作创建子进程,属于重量级操作,频繁执行成本过高。 AOF的主要作用是解决了数据持久的实时性, 目前已经是Redis持久的主流方式。 如何开启AOF 开启AOF功能需要设置配置:appendonly yes, 默认不开启。 保存路径同RDB持久方式一致,通过dir配置指定。

    82830发布于 2021-02-22
领券