当前位置: 首页 > news >正文

redis的持久化

第一章、redis的持久化

1.1)持久化概述

①持久化可以理解为将数据存储到一个不会丢失的地方,Redis 的数据存储在内存中,电脑关闭数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就算是一种持久化。

②为解决这个问题,redis提供了两种持久化的方式,便于发生故障后能迅速恢复数据,分别是RDB(Redis DataBase)和AOF(Append Only File)。

③两种方式也可以同时使用,优先采用AOF方式来进行数据恢复,因为AOF方式的数据恢复完整度更高。

1.2)RDB方式持久化

①就是在指定的时间点内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存。

②RDB 技术非常适合做备份,可以保存最近一个小时,一天,一个月的全部数据。保存数据是在单独的进程中写文件,不影响 Redis 的正常使用。RDB 恢复数据时比其他 AOF 速度快。

③RDB缺点:即使每5分钟都持久化一次,当redis故障时,仍然会有近5分钟的数据丢失。

1.2.1)RDB配置过程

在配置文件 redis.conf 中搜索 SNAPSHOTTING, 查找在注释开始和结束之间的关于 RDB 的配置说明。配置地方有三处。

①: 配置执行 RDB 生成快照文件的时间策略。 让它在“ N 秒内数据集至少有 M 个 key 改动”
这一条件被满足时,自动保存一次数据集。 配置格式:save  <seconds>  <changes>
save 900 1
save 300 10 
save 60 10000 ②: dbfilename:设置 RDB 的文件名,默认文件名为 dump.rdb 
③: dir:指定 RDB 文件的存储位置,默认是 ./ 当前目录 

配置步骤:
①:查看 ps -ef | grep redis ,如果 redis 服务启动,先停止。
在这里插入图片描述
②:修改 redis.conf 文件, 修改前先备份,执行 cp redis.conf bak_redis.conf
在这里插入图片描述
查看默认启用的 RDB 文件
在这里插入图片描述
③:编辑 redis.conf 增加 save 配置, 修改文件名等。vim redis.conf
在这里插入图片描述
修改的内容:
在这里插入图片描述
在这里插入图片描述
把原来的默认的 dump.rdb 删除,修改 redis.conf 后,重新启动 redis
④:在 20 秒内,修改三个 key 的值

在这里插入图片描述
⑤:查看生成的 rdb 文件

在这里插入图片描述

1.3)AOF方式持久化

①Redis 每次接收到一条改变数据的命令时,它将把该命令写到一个 AOF 文件中(只记录写操作,读操作不记录),当 Redis 重启时,它通过执行 AOF 文件中所有的命令来恢复数据。

②在同样数据规模时,AOF文件要比RDB文件的体积大。恢复速度要慢于RDB方式。

③Redis 支持在不影响服务的前提下在后台重构 AOF 文件,让文件得以整理变小。比如:做一百次加法计算,最后你只会在数据库里面得到最终的数值,但是在你的 AOF 里面会存在 100 次记录,其中有99 条记录对最终的结果是无用的会被整理掉;

1.3.1)AOF配置过程

AOF 方式的数据持久化,仅需在 redis.conf 文件中配置即可配置项:
①:停止运行的 redis , 备份要修改的 redis.conf
②:查看 redis 安装目录/src 下有无 .aof 文件。 默认是在 redis 的当前目录
在这里插入图片描述

③:编辑 redis.conf, appendonly默认是 no,改成 yes 即开启了 aof 持久化 , 查看 appendfilname 的文件名称是appendonly.aof
在这里插入图片描述
④:appendfsync:配置向 aof 文件写命令数据的策略:
no:不主动进行同步操作,而是完全交由操作系统来做(即每 30 秒一次),比较快但不是很安全。
always:每次执行写入都会执行同步,慢一些但是比较安全。
everysec:每秒执行一次同步操作,比较平衡,介于速度和安全之间。这是默认项。
在这里插入图片描述
⑤:dir : 指定 RDB 和 AOF 文件存放的目录,默认是 ./

⑥:auto-aof-rewrite-min-size:允许重写的最小 AOF 文件大小,默认是 64M 。当 aof 文件大于 64M 时,开始整理 aof文件, 去掉无用的操作命令。缩小 aof 文件。

⑦测试:在 redis 客户端执行 写入命令
在这里插入图片描述
查看 aof 文件
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/117382.html

相关文章:

  • 藏语翻译器:多功能翻译软件
  • Java课题笔记~ JavaWeb概述/开发基础
  • 【解放ipad生产力】如何在平板上使用免费IDE工具完成项目开发
  • IDEA快捷键总结
  • OpenJDK Maven 编译出错: package jdk.nashorn.internal.runtime.logging does not exist
  • .Net Framework请求外部Api
  • 线程池工作原理深入解析
  • chatGPT小白快速入门课程大纲
  • 网络编程——多路复用——epoll机制
  • chapter14:springboot与安全
  • Linux初识网络基础
  • vue3+ts 动态导入多文件组件
  • 补充122836356
  • 记录 pl-table 表格头部文字抖动的问题
  • Vite 创建 Vue项目之后,eslint 错误提示的处理
  • FFmpeg 硬编码VideoToolBox流程
  • 恒盛策略:内盘是买入还是卖出?
  • 安装Lombok--Lombok的常用注解说明及使用方法
  • 无涯教程-Perl - endpwent函数
  • vue项目在body设置公共的背景前提下,区分首页背景图和其他页面背景图
  • 测试人员该怎样写软件缺陷报告?
  • 【大数据】Flink 详解(二):核心篇 Ⅱ
  • 一孩半政策
  • 如何在 Spring Boot 中集成日志框架 SLF4J、Log4j
  • 如何在Linux布置nginx(附带Nginx基本操作步骤)
  • Xcode升级导致关联库报错
  • 利用docker run --rm 命令实现使用宿主机中没有的命令
  • 中级课程——XSS
  • win10+Vmware+ubuntu18 mosquitto调试记录
  • Java EE 突击 9 - Spring Boot 日志文件