返回顶部
首页 > 资讯 > 数据库 >Redis 高可用之"持久化"
  • 285
分享到

Redis 高可用之"持久化"

Redis高可用之"持久化" 2015-10-14 04:10:27 285人浏览 猪猪侠
摘要

Redis高可用概述 在Redis中,实现高可用的技术主要包括:持久化、复制(读写分离)、哨兵、集群。 持久化: 持久化是最简单的高可用方法(有时甚至不被归为高可用手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进

Redis 高可用之

Redis高可用概述

在Redis中,实现高可用的技术主要包括:持久化、复制(读写分离)、哨兵、集群

  • 持久化:

    持久化是最简单的高可用方法(有时甚至不被归为高可用手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。

  • 复制:

    复制是高可用Redis的基础,哨兵和集群都是在复制的基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。

    缺陷:故障恢复无法自动化,写操作无法负载均衡,存储能力受到单机的限制。

  • 哨兵:

    在复制的基础上,哨兵实现了自动化的故障恢复。

    缺陷:写操作无法负载均衡;存储能力收到单机限制。

  • 集群:

    通过集群,Redis解决了操作无法负载均衡,以及存储能力收到单机限制的问题,实现了较为完善的高可用解决方案。

Redis持久化概述

持久化的功能:Redis 是内存数据库,数据都是存储在内存中。

Redis 的持久化分为 RDB 和 AOF 持久化:

  • 前者是将数据保存到硬盘。
  • 后者是将每次执行的写命令保存到硬盘。
RDB 持久化

​ RDB持久化是将当前进程中的数据生成快照保存到硬盘中(因此也叫做快照持久化),保存的文件后缀是RDB;

​ 当Redis重新启动时,可以读取快照文件恢复数据。

触发条件

  • 手动触发
  • 自动触发

手动触发:save命令和bgsave命令都可以生成 RDB 文件。

​ save命令会阻塞 Redis 服务进程,直到 RDB 文件创建完毕为止,在 Redis 服务器 阻塞期间,服务器不能执行任 何命令请求。

​ bgsave命令会创建一个子进程,由子进程来创建 RDB 文件,父进程(即 Redis 主进程) 继续处理请求。bgsave 命令执行过程中,只有fork(ork了进程,子进程中的redis连接没法用了,要重连) 子进程会阻塞服务器,而对于 save 命令,整个过程都会阻塞服务器。

在自动触发 RDB 持久化时,Redis 也会使用 bgsave 而不是 save 来进行持久化;下面介绍自动触发 RDB 持久化条件。

自动触发:最常见的情况是在配置文件中通过 save m n ,指定 m 秒内发生了 n 次变化时,会触发 bgsave。

​ 在Redis 配置文件Redis.conf中,可以看到如下配置信息:

save 900 1  #当时间到 900 秒时,如果 Redis 数据发生了至少 1 次变化,则执行 bgsave。
save 300 10 
save 60 10000 

除了 save m n 以外,还有一些其他情况会触发 bgsave:

  • 在主从复制场景下,如果从节点执行全量复制操作,则主节点会执行 bgsave 命令,并将 RDB 文件发送给从节点。
  • 执行 shutdown 命令时,也会自动执行 RDB 持久化。

启动时加载

​ RDB 的载入工作实在服务器启动时自动执行的,并没有专门的命令。但是由于 AOF 的优先级更高,因此当 AOF 开启时,会优先载入 AOF 文件来恢复数据。

文件校验

​ Redis 载入 RDB 文件时,会对 RDB 文件进行校验,如果文件损坏,则日志中会打印错误,Redis 启动失败。

AOF 持久化

​ RDB 持久化是将进程数据写入硬盘,而 AOF 持久化(即 Append Only File 持久化),则是将 Redis 执行的每次写 命令记录到单独的日志文件中,当 Redis 重启的时候再次执行 AOF 来恢复数据。

与 RDB 相比 ,AOF 实时性更好,因此已成为当前主流的持久化方案。

开启 AOF:Redis 服务器默认开启 RDB,关闭 AOF;要开启 AOF,需要在配置文件中配置:appendonly yes。

文件校验

​ 与载入 RDB 文件类似,Redis 载入 AOF 文件时,会对 AOF 文件进行校验,如果文件损坏,则日志中会打印错 误,Redis 启动失败。

RDB与AOF的优缺点

RDB 持久化:

  • 优点:RDB 文件紧凑,体积小,网络传输快,适合全量复制;恢复速度比 AOF 快很多。当然,与 AOF 相比,RDB 最重要的优点之一是对性能的影响相对较小。

  • 缺点:RDB 文件的致命缺点在于其数据快照的持久化方式决定了必然做不到实时持久化,而在数据越来越重要的今天,数据的大量丢失很多时候是无法接受的,因此 AOF 持久化成为主流。

    此外,RDB 需要满足特定的格式,兼容性差/

AOF 持久化:

  • 与 RDB 持久化相对应,AOF 的优点在于支持秒级持久化、兼容性好,缺点是文件大、恢复速度慢、对性能影响大。
您可能感兴趣的文档:

--结束END--

本文标题: Redis 高可用之"持久化"

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

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

猜你喜欢
  • Redis 高可用之"持久化"
    Redis高可用概述 在Redis中,实现高可用的技术主要包括:持久化、复制(读写分离)、哨兵、集群。 持久化: 持久化是最简单的高可用方法(有时甚至不被归为高可用手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进...
    99+
    2015-10-14
    Redis 高可用之"持久化"
  • Redis高可用之持久化
    目录一、高可用什么是高可用二、Redis持久化持久化功能RDB持久化 触发条件bgsave执行流程AOF持久化执行流程命令追加文件写入和文件同步文件重写文件重写流程三、RDB和AOF的优缺点RDB持久化的优缺点...
    99+
    2023-04-07
    Redis高可用之持久化 Redis高可用 Redis持久化
  • Redis高可用和持久化概述
    这篇文章主要介绍“Redis高可用和持久化概述”,在日常操作中,相信很多人在Redis高可用和持久化概述问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis高可用和持久化...
    99+
    2024-04-02
  • Redis之持久化
    redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。redis支持两种持久化方式: 1、snapshotting(快照)也是默认方式。将内存中的数据以快照...
    99+
    2024-04-02
  • Redis持久化之AOF
    背景:RDB不足之处1.耗时,耗性能生成快照文件耗时,load快照文件耗时Fork子进程网络开销写文件磁盘I/O开销 2.不可控,丢失数据会丢失最后一次快照最后操作的数据。 一、工作流程Redis写操作...
    99+
    2024-04-02
  • Redis之--rdb持久化
    持久化:通俗讲,下次开机还有数据,断电后不会丢失数据,存放于磁盘。 Redis:rdb快照持久化每隔N分钟或N次写操作后,从内存dump数据形成RDB文件。压缩,放在备份目录。 参数详解:从下往上看save...
    99+
    2024-04-02
  • Redis学习之持久化
    简介 持久化是将内存中的瞬时数据,转换为存储在磁盘上的持久数据。redis是一个将数据存储在内存中的数据库,这也是它高效率的原因之一。但是将数据存储在内存,如果遇到突发事件,可能会造成数据的丢失。所以我们需要将数据持久化,等下次redis启...
    99+
    2019-03-12
    Redis学习之持久化
  • redis中的高可用与持久化怎么配置
    本篇内容主要讲解“redis中的高可用与持久化怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis中的高可用与持久化怎么配置”吧!一、Redis 高...
    99+
    2024-04-02
  • NoSQL之redis(持久化策略)
    1.rdb方式     (1)介绍:redis默认的是通过快照来将数据持久化到磁盘中。     (2)持久化的条件:                         在900秒有一次写入,或者在300有1...
    99+
    2024-04-02
  • Redis持久化之RDB快照
    什么是RDB?1.Redis数据存储在内存中,通过save或bgsave可以在硬盘上创建一个rdb的二进制文件。这个rdb文件相当于redis的数据的快照。2.Redis 重启后,会将硬盘中rdb文件内容...
    99+
    2024-04-02
  • Redis(四):持久化之---AOF持久化的配置和原理
    AOF持久化及AOF重写的配置:默认AOF方式是关闭的,如下图:如果要开启的话,就是把no改写成yes。如下图:默认文件名称appendonly.aof,你也可以修改文件名。默认保存目录同样也是配置文件中d...
    99+
    2024-04-02
  • 【Redis】Redis持久化之AOF详解(Redis专栏启动)
    📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公司后端高级...
    99+
    2023-09-05
    redis 缓存 数据库 java AOF
  • 进阶的Redis之数据持久化RDB与AOF
    大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数...
    99+
    2024-04-02
  • 如何使用redis实现持久化
    如何使用redis实现持久化?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。RDBRDB就是持久化的一种手段,把内存中数据在某些...
    99+
    2024-04-02
  • redis如何支持高可用
    redis 高可用性机制 Redis 是一种高可用性(HA)分布式缓存系统,可以通过以下机制实现: 主从复制 主从复制创建主节点和多个从节点的复制组。 主节点存储数据,并同步复制到从节...
    99+
    2024-06-12
    redis
  • Redis 彻底禁用RDB持久化操作
    Redis 禁用RDB持久化 Redis是默认开启RDB的,AOF则是默认关闭的。如果需要关闭RDB,将Redis完全作为一个缓存使用,需要修改配置项save。 开启save “”,...
    99+
    2024-04-02
  • 如何使用Redis实现数据持久化
    如何使用Redis实现数据持久化引言Redis是一种快速、高效的内存数据库,但默认情况下它的数据是存储在内存中的。这就意味着一旦服务器断电或重启,Redis中的数据将会丢失。为了解决这个问题,Redis提供了一些机制来实现数据的持久化。本文...
    99+
    2023-11-07
    数据 redis 持久化
  • Redis的持久化机制采用RDB还是AOF
    这篇文章主要讲解了“Redis的持久化机制采用RDB还是AOF”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis的持久化机制采用RDB还是AOF”吧!...
    99+
    2024-04-02
  • Redis如何彻底禁用RDB持久化操作
    本篇内容主要讲解“Redis如何彻底禁用RDB持久化操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis如何彻底禁用RDB持久化操作”吧!Redis 禁用RDB持久化Redis是默认开启...
    99+
    2023-06-20
  • vue实际运用之vuex持久化详解
    目录vuex持久化总结vuex持久化 vuex:刷新浏览器,vuex中的state会重新变为初始状态 解决办法: 使用vuex-persistedstate插件 (实际就是自动...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作