05. Redis 持久化

ops/2024/9/25 17:19:28/

文章目录

  • Redis 持久化
    • RDB(Redis Database)
      • 什么是 RDB?
      • 测试
      • 触发机制
      • 如何恢复 RDB 文件
      • RDB 优缺点
    • AOF(append only file)
      • 什么是 AOF?
      • 修复 aof 文件(redis-check-aof)
      • 重写机制
      • AOF 的优点和缺点

Redis 持久化

Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以 Redis 提供了持久化功能。

RDB(Redis Database)

什么是 RDB?

在指定的时间间隔内,将内存中的数据集快照写入磁盘,也就是 Snapshot 快照,它恢复时是将快照文件直接读到内存里。

  • Redis 会单独创建(fork)一个子进程来进行持久化,会现将数据写入到一个临时文件中,待持久化过程结束,再用这个临时文件替换上次持久化好的文件。
  • 整个过程,主进程是不进行任何 IO 操作的,这就确保了极高的性能。
  • 如果需要进行大规模的数据恢复,且对于数据恢复的完整性不是非常敏感,那 RDB 方式要比 AOF 模式更加的高效。
  • RDB 模式的缺点是,最后一次持久化的数据可能会丢失(最后一次持久化的时候宕机了)。
  • 默认就是 RDB 模式。
  • RDB 保存的文件是 dump.rdb。
    在这里插入图片描述

测试

测试,60s 内修改了 5 次 key,就会触发 RDB 操作。

在这里插入图片描述
修改完配置文件,调用 save 命令保存即可。

127.0.0.1:6379> save
OK

触发机制

  • save 命令的规则满足的情况下,会自动生成 RDB 文件;
  • 执行 flushall 命令,也会产生 RDB 文件;
  • 退出 Redis,也会生成 RDB 文件。

备份就会自动生成一个 dump.rdb 文件。

如何恢复 RDB 文件

只需将 RDB 文件放在 Redis 的启动文件目录下,Redis 启动会自动检查 dump.rdb 并恢复其中的数据。

查看需要存在的位置:

127.0.0.1:6379> config get dir
1) "dir"
2) "/usr/local/redis/redis-stable/src" # 如果在这个目录下存在 dump.rdb 文件,Redis 启动就会恢复其中的数据

RDB 优缺点

优点:

  • 适合大规模的数据备份和恢复;
  • 如果对数据的完整性要求不高,就可以使用 RDB。

缺点:

  • 需要一定的时间间隔进行操作,如果 Redis 意外宕机了,这个最后一次修改的数据就没了;
  • fork 进程的时候,会占用一定的内存空间!

AOF(append only file)

什么是 AOF?

将我们的所有命令都记录下来,好比一个 history,恢复的时候把这个文件里面的命令重新执行一遍。

  • AOF 保存的是 appendonly.aof 文件。
  • AOF 默认不开启,需要手动进行配置。
  • 配置完成后,重启就会生效,就会生成 appendonly.aof。

在这里插入图片描述

redischeckaof_75">修复 aof 文件(redis-check-aof)

如果这个 aof 文件有错误,这时候启动 redis 会报错,需要修复这个 aof 文件。Redis 提供了修复工具:redis-check-aof。

./redis-check-aof --fix appendonly.aof

重写机制

如果 AOF 文件大于 64m,Redis 就会 fork 一个子进程对我们的 AOF 文件进行重写。
在这里插入图片描述

AOF 的优点和缺点

优点:

  • 每一次修改都同步,文件完整性更高;
  • 默认每秒同步一次,可能丢失一秒的数据。

缺点:

  • 相对于数据文件来说,AOF 远大于 RDB,修复的速度也比 RDB 慢;
  • AOF 是一个读写操作,所以运行效率要比 RDB 慢。

http://www.ppmy.cn/ops/44958.html

相关文章

算法金 | Dask,一个超强的 python 库

本文来源公众号“算法金”,仅用于学术分享,侵权删,干货满满。 原文链接:Dask,一个超强的 python 库 1 Dask 概览 在数据科学和大数据处理的领域,高效处理海量数据一直是一项挑战。 为了应对这一挑战&am…

爬虫案例(读书网)

一.我们还是使用简单的bs4库和lxml,使用xpath: 导入下面的库: import requests from bs4 import BeautifulSoup from lxml import etree 我们可以看见它的div和每个书的div框架,这样会观察会快速提高我们的简单爬取能力。 二.实…

无人机光伏巡检技术在光伏电站维护中的应用前景。

在太阳能成为全球能源结构转型重要支柱的今天,光伏电站的高效维护显得尤为重要。无人机光伏巡检技术,以其独特优势,正在重塑这一领域的传统作业模式,引领运维走向智能化的新高度。 不同于传统的人力巡检,无人机不仅能…

UOS开通22端口用于SSH

主机虚拟机能相互ping通,但是mobaxterm等(远程ssh软件)连接不了 原因很有可能是虚拟机未安装SSH服务 检测是否已安装ssh服务,输入以下命令 ssh localhost 如果出现: ssh: connect to host localhost port 22: Connection refused 表明没有…

深入理解Spring Security:保护你的Web应用程序

深入理解Spring Security:保护你的Web应用程序 这听起来像是一部詹姆斯邦德电影,邦德试图进入坏家伙的藏身之处。坏家伙设置了一系列超级安全措施,有多层次的安全防御。邦德克服了其中一层,进入了隐藏处,但又遇到了下一个陷阱。他战胜了一个又一个陷阱,最终克服了所有障…

四川汇聚荣聚荣科技有限公司是正规的吗?

在当今社会,随着科技的飞速发展,越来越多的科技公司如雨后春笋般涌现。然而,在这个信息爆炸的时代,如何判断一家公司是否正规成为了许多人关注的焦点。本文将围绕“四川汇聚荣聚荣科技有限公司是否正规”这一问题展开讨论&#xf…

(函数)颠倒字符串顺序(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>//声明颠倒函数; void reverse(char a[]) {//初始化变量值&#xff1b;int i, j;char t;//循环颠倒&#xff1b;for (i 0, j strl…

dubbo复习:(4) 和springboot 整合时,客户端负载均衡的配置

需要在DubboReference注解指定loadbalance属性。示例如下&#xff1a; package cn.edu.tju.service;import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Ser…