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

[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备

目录

0.概述

持久化的策略

1 RDB

1.1 触发机制

1.2 流程说明

1.3 RDB 的优缺点


0.概述

  • 在学习 MySQL 数据库时,我们了解到事务的四个核心特性:原子性、一致性、持久性和隔离性。
  • 这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时,尽管它主要将数据存储在内存中,但为了保证数据的持久性,Redis 也提供了几种机制来将数据保存到硬盘上。
  • 硬盘上的数据主要用于 Redis 重启后恢复数据。
  • 当向 Redis 中插入数据时,需要同时考虑如何将数据写入内存和硬盘。为此,Redis 提现了两种不同的持久化策略:RDB(Redis Database)模式与 AOF(Append Only File)模式。
持久化的策略
  • RDB 模式:采取定期备份的方式,即每隔一段时间,就会把内存中的所有数据备份到硬盘上。这种方式适合用于冷备和主从复制场景。
  • AOF 模式:采用实时备份的方法,每当内存中有新的数据变动时,都会立即追加记录到硬盘上的日志文件中。这种方法提供了更好的数据完整性保障,但在性能上可能不如 RDB 方式。

通过这两种方式,Redis 能够有效地平衡数据安全性和系统性能,让用户可以根据实际需求选择最合适的持久化方案。


相对来说,一台电脑上,硬盘是最容易坏的部分。

  • CPU? 如果你把CPU用坏了,恭喜你,可以去买彩票了(bush
  • 显卡? 除非你是高强度挖矿(矿卡)
    • “挖矿”是用电脑的算力去解复杂的数学问题,来获取虚拟货币的过程。
    • 以比特币为例,它的交易记录保存在区块链中,“挖矿”就是矿工通过计算机运算来竞争记账权,成功就能获得比特币奖励。这一过程需要强大的计算能力,会消耗大量能源。
    • “矿卡”是指用于挖矿的显卡。因为长时间高负荷工作,矿卡的使用寿命会缩短,性能也可能下降。
    • 和普通显卡相比,矿卡的硬件老化和损坏程度更严重。
  • 内存? 概率非常低
  • 硬盘 反而是最容易出问题的,尤其是“机械硬盘”。

持久化到硬盘,有同学就会想,那硬盘坏了怎么办?对于重要资料,我们可以再拿另一块移动硬盘,来作为备份用的硬盘

本篇主要内容:

  • 介绍 RDB、AOF 的配置和运行流程,以及控制持久化的命令,如 bgsave 和 bgrewriteaof。
  • 对常见持久化问题进行分析定位和优化。

1 RDB

RDB 持久化是把当前进程数据生成 快照 保存到硬盘的过程,触发 RDB 持久化过程分为 手动触发和自动触发。

  • 何为生成快照,就像警察来到案发现场一样,对没有破坏的案发现场进行拍照,按照照片上提供的线索对现场当时的情况进行还原.
  • Redis生成快照的方式也是类似的,Redis在内存中存储数据之后,Redis会给这些数据进行"拍照",生成一个文件,存储在硬盘中.后续在Redis重启之后,就可以根据刚才生成的快照,把内存中的数据进行恢复处理.
1.1 触发机制

手动触发分别对应 save 和 bgsave 命令:

  • save 命令:执行的时候,Redis就会全力以赴的进行"快照生成"操作,此时就会阻塞Redis的其他客户端的命令,结果类似与keys *,所以我们一般不建议使用save命令.
  • bgsave 命令不会阻塞影响到其他的Redis客户端, 是由于Redis引入了多进程的方式来实现这个功能. 其中一个进程负责继续接收客户端的请求, 另一个进程负责生成快照并存储到硬盘中. 也就是Redis会创建出一个子进程,子进程会完成持久化操作. 持久化会把数据写入到新的文件中, 然后使用新的文件替换旧的文件.

Redis 内部的所有涉及 RDB 的操作都采用类似 bgsave 的方式。

关于文件是否被替换,我们可以使用Linux的stat命令来查看文件的iNode编号.在执行bgsave命令之后,我们发现文件的iNode有变化.


1.2 流程说明

bgsave 是主流的 RDB 持久化方式

当用户执行 bgsave 命令时,Redis 会通过以下步骤生成数据快照:

  • 创建子进程
    • 父进程通过 fork 系统调用创建一个子进程。
    • fork 是 Linux 的系统调用,因为 Redis 只支持在 Linux 上运行,所以直接使用了这个系统调用。
    • 执行 fork 时,父进程的所有资源(包括内存中的数据、进程地址空间、页表和 PCB 等)都会被复制一份给子进程。
  • 子进程生成快照
    • 子进程负责生成数据快照。
    • 父进程继续响应其他命令,不会被阻塞。
  • 信号通知
    • 当子进程完成快照生成后,会发送一个信号给父进程,通知其快照已经完成。实现 新旧文件替换
    • 如果父进程在收到信号之前收到了另一个 bgsave 命令,它会直接返回而不处理,因为已经有子进程正在执行持久化操作。这样可以确保多个 bgsave 命令只触发一次持久化操作。

流程

  • Fork:创建子进程,使用写时拷贝机制。
  • 生成 RDB 文件:子进程将内存数据写入临时文件
  • 替换文件:子进程将临时文件重命名为 dump.rdb,这是一个原子操作。
  • 通知父进程:子进程通过信号通知父进程持久化完成。

问题:搜的当中还是没有解释,关于 子进程rdb文件的生成 是否是一个写时拷贝的操作,问了一下ai,只说到了修改会 写时拷贝

总结

  • bgsave 命令:通过 fork 创建子进程来生成数据快照,父进程继续响应其他命令。
  • 写时拷贝fork 时并不立即复制所有内存数据,而是采用 写时拷贝(Copy-on-Write, COW) 技术 只有在实际写入时才进行拷贝,从而提高效率并节省内存空间。

下面我们来查看执行bgsave前后两次的iNode.

查看

可以发现 bgsave 后,inode 发生了变化,说明 存在 子进程 & 新旧文件替换

而 save命令是直接在之前的旧文件上写入数据, 所以在执行save命令之后, dump.rdb文件的iNode不会改变

❓斯 理论来说是上面这样不会变化的,可是实验发现 inode 变了,为什么呢,博主也还在思考,感觉可能是因为 其他外部因素的影响,使文件被删除并重新创建了

✔️已解决)之前网上搜到的大部分资料, 都是说 save 命令没有创建新文件, 直接写旧文件. 但是翻下源码, 确实是创建新文件的. 这个可能和redis 版本有关, 可能早期版本是直接写的, 导致网上很多资料说的都是早期的情况吧. 

rdb.c 的 rdbSave 函数里可以看到这个过程


下面我们来对bgsave的实际效果进行展示:

1. 手动触发


如果我们不使用 bgsave, 用kill -9命令直接终止Redis相关进程, 再次进入,数据直接丢失.

2. 自动触发

除了手动触发之外,Redis 运行自动触发 RDB 持久化机制,这个触发机制才是在实战中有价值的。

  • 使用 save 配置。如 "save m n" 表示 m 秒内数据集发生了 n 次修改,自动 RDB 持久化。
  • 从节点进行全量复制操作时,主节点自动进行 RDB 持久化,随后将 RDB 文件内容发送给从节点。
  • 执行 shutdown 命令关闭 Redis 时,执行 RDB 持久化。

a. save 配置

RDB快照的生成是定期生成,所以我们可以在Redis的配置文件中设置让Redis每隔多长时间就触发一次.其中的配置项是save配置项.

可以 cd /ect/redis 中 nano redis.conf ctrl+w save 查看到

例如:save 900 1

  • 如果在900秒之内 只有1个键值对的修改,那么就是没900秒触发一次.
  • 以此类推.当我们把save配置项设置为一个空字符串(“”)的时候,这时候就会关闭快照的定期自动生成.

Redis 的 RDB(Redis Database Backup)持久化机制是通过在指定的时间间隔内生成内存数据的快照来实现的。尽管RDB文件中的参数可以按需调整,但有一个基本原则:由于生成一次RDB快照成本较高,不应过于频繁地执行此操作。

  • 这意味着,在两次RDB快照之间,如果发生了大量键值对的变化或服务突然崩溃,可能会导致部分数据丢失。
  • 例如,假设在12点时生成了RDB快照,而从12:01开始直到下一次快照生成前,Redis接收到大量的键更新请求。若在此期间Redis服务发生故障,则12点之后的所有更改将无法恢复。

  • 例如:单机游戏 利用读档和存档的时间 bug 可以不停抽奖,直到抽到想要的- SL 大法(save&load)

下篇文章 我们将学到 AOF 就是解决 这种情况的

redis生成的RDB文件存放在Redis的工作目录中,其中有一个dump.rdb文件.这个是Redis的RDB机制生成的镜像文件,Redis服务器就是默认开启了RDB的.这个文件就是RDB保存在硬盘中的持久化文件.

  • RDB文件存放位置:默认情况下,RDB文件存放在Redis的工作目录中,通常为/var/lib/redis/。可以通过配置文件中的dir选项来修改这个路径。
  • RDB文件名:默认文件名为dump.rdb,可通过配置文件中的dbfilename项进行自定义。
  • RDB文件性质:这是一个二进制文件,它以压缩形式保存内存中的数据,虽然会占用一定的CPU资源,但能有效节省硬盘空间。
  • RDB文件重要性:由于RDB文件直接关系到Redis的数据持久化,因此不建议随意修改该文件。如果文件损坏,Redis可能无法正常启动,或者即使启动成功,数据也可能与预期不符。
  • RDB文件检查工具:为了确保RDB文件的完整性,Redis提供了一个检查工具redis-check-rdb <rdb文件路径>,用于检测文件是否损坏。

正确配置和管理 RDB快照对于保证Redis数据的安全性和一致性至关重要。同时,合理设置快照生成频率,既能避免过多消耗系统资源,又能有效减少因服务异常导致的数据损失风险。


补充

RDB 文件损坏的影响

  • 手动损坏 RDB 文件
    • 如果手动修改 RDB 文件内容,可能会导致文件损坏。
    • 重启 Redis 服务器时,Redis 会尝试重新加载 RDB 文件。
    • 如果文件损坏,Redis 可能无法正常启动。
  • RDB 文件损坏的后果
    • 如果 RDB 文件损坏,Redis 服务器可能会启动失败。
    • 具体影响取决于损坏的位置:
      • 文件末尾损坏:对前面的内容影响较小。
      • 中间位置损坏:可能导致 Redis 服务器无法启动。
  • 日志检查
    • 当 Redis 服务器启动失败时,可以通过查看 Redis 日志来了解具体原因。
    • 日志文件通常位于 /var/log/redis/ 目录下,可以通过以下命令查看:
cd /var/log/redis/
    • 日志文件示例:
rw-rw---- 1 redis adm 83674 11:29 redis-server.log
rw-rw---- 1 redis adm 3405 16:22 redis-server.log.1.gz
  • 错误信息
    • 如果 RDB 文件损坏,Redis 日志中可能会出现以下错误信息:
Short read or OOM loading DB: Unrecoverable error, aborting now.
Internal error in RDB reading function at rdb.c:2125 -- Unexpected EOF reading RDB file
  • 上述错误信息 可以 通过 redis-check-rdb 检测后再来启动来检查

我们来查看一下


1.3 RDB 的优缺点

优点

  • RDB是⼀个紧凑压缩的⼆进制⽂件,代表Redis在某个时间点上的数据快照,⾮常适⽤于备份,全量复制等场景
    • 例如:每6⼩时执⾏bgsave备份,并把RDB ⽂件复制到远程机器或者⽂件系统(如 hdfs)⽤于灾备
  • Redis加载RDB恢复数据远远快于AOF的方式
    • RDB以二进制的方式来组织数据,直接把数据读取到内存中,按照字节的格式取出来,放到结构体/对象中即可
    • AOF使用文本的方式来组织数据,需要进行一系列的字符串切分操作

缺点

  • RDB⽅式数据没办法做到实时持久化 / 秒级持久化,因为bgsave每次运⾏都要执⾏fork创建⼦进程,属于重量级操作,频繁执⾏成本过⾼
  • RDB ⽂件使⽤特定⼆进制格式保存,Redis 版本演进过程中有多个 RDB 版本,兼容性可能有⻛险

相关文章:

[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备

目录 0.概述 持久化的策略 1 RDB 1.1 触发机制 1.2 流程说明 1.3 RDB 的优缺点 0.概述 在学习 MySQL 数据库时&#xff0c;我们了解到事务的四个核心特性&#xff1a;原子性、一致性、持久性和隔离性。这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时&a…...

ubuntu部署RocketMQ

Quick Start RocketMQ 下载 解压 把下载的文件解压重命名&#xff0c;放在想放的位置 需要提前配置JDK环境变量&#xff0c;或者直接在配置文件中指定JAVA_HOME 编辑 编辑 rocketmq/bin下的 runserver.sh 和runbroker.sh文件&#xff0c;把内存大小改小一点&#xff0c;因为…...

深入浅出:PHP中的变量与常量全解析

文章目录 引言理解变量普通变量赋值操作变量间赋值引用赋值取消引用 可变变量预定义变量 理解常量声明常量使用define()函数const关键字 使用常量预定义常量 扩展话题&#xff1a;作用域与生命周期实战案例总结与展望参考资料 引言 在编程的世界里&#xff0c;变量和常量是两种…...

概率论相关知识随记

作为基础知识的补充&#xff0c;随学随记&#xff0c;方便以后查阅。 概率论相关知识随记 期望&#xff08;Expectation&#xff09;期望的定义离散型随机变量的期望示例&#xff1a;掷骰子的期望 连续型随机变量的期望示例&#xff1a;均匀分布的期望 期望的性质线性性质期望的…...

gpt-computer-assistant - 极简的 GPT-4o 客户端

更多AI开源软件&#xff1a; AI开源 - 小众AIhttps://www.aiinn.cn/sources gpt-computer-assistant是一个将 ChatGPT MacOS 应用程序提供给 Windows 和 Linux 的替代工作。因此&#xff0c;这是一个全新且稳定的项目。此时&#xff0c;您可以轻松地将其作为 Python 库安装&am…...

【Java开发】Springboot集成mybatis-plus

1、引入 mybatis-plus 依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.0</version> </dependency> <!--mysql依赖--> <dependen…...

本地运行打包好的dist

首先输入打包命令 每个人设置不一样 一般人 是npm run build如果不知道可以去package.json里去看。 打包好文件如下 命令行输入 :npm i -g http-server 进入到dist目录下输入 命令cmd 输入 http-server 成功...

mac安装php和xdebug调试

要在Mac上安装PHP 7.4&#xff0c;你可以通过几种方式来完成&#xff0c;但鉴于PHP7.4官方已不再维护&#xff0c;并且Homebrew默认仓库中不再提供此版本&#xff0c;我们需要从第三方仓库或直接从源代码进行安装。本文以brew方式安装&#xff0c;如果安装的是8.0以上&#xff…...

使用Rufus制作Ubuntu需要注意

‌在使用Rufus制作Ubuntu启动盘并进行BIOS设置时&#xff0c;需要注意以下几点‌&#xff1a; ‌关闭RST&#xff08;英特尔 快速存储技术&#xff09;‌&#xff1a;在BIOS设置中&#xff0c;如果电脑启用了RST功能&#xff0c;需要将其关闭。因为Ubuntu可能无法检测到硬盘&a…...

2024 阿里云Debian12.8安装apach2【图文讲解】

1. 更新系统&#xff0c;确保您的系统软件包是最新的 sudo apt update sudo apt upgrade -y 2. 安装 Apache Web 服务器 apt install apache2 -y 3. 安装 PHP 及常用的扩展 apt install php libapache2-mod-php -y apt install php-mysql php-xml php-mbstring php-curl php…...

iOS平台接入Facebook登录

1、FB开发者后台注册账户 2、完善App信息 3、git clone库文件代码接入 4、印尼手机卡开热点调试 备注&#xff1a; 可能遇到的问题&#xff1a; 1、Cocos2dx新建的项目要更改xcode的git设置&#xff0c;不然卡在clone&#xff0c;无法在线获取FBSDK 2、动态库链接 需要在…...

关于在ubuntu上无法运行EasyConnect的解决方法

需要这三个文件 libpangocairo-1.0-0_1.40.14-1_amd64.deb libpangoft2-1.0-0_1.40.14-1_amd64.deb libpango-1.0-0_1.40.14-1_amd64.deb然后执行 cp source /usr/share/sangfor/EasyConnect再重启EasyConnect即可 下载链接 http://kr.archive.ubuntu.com/ubuntu/pool/main/…...

常用 Linux 各资源指标监控示例(长期更新)

1、在 linux 中&#xff0c;查看指定进程下各线程运行情况 # ps 方式&#xff0c;查看 pid 为 776 的进程有哪些线程 ps -Tp 776 #> PID SPID TTY TIME CMD #> 776 776 ? 00:00:01 zebra #> 776 778 ? 00:00:00 RCU sweeper #&g…...

【目标跟踪】AntiUAV600数据集详细介绍

AntiUAV600数据集的提出是为了适应真实场景&#xff0c;即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务&#xff0c;没有结合现实情况考虑。 论文链接&#xff1a;https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…...

数学建模之RSR秩和比综合评价法(详细)

RSR秩和比综合评价法 一、概述 秩和比法(Rank-sum ratio&#xff0c;简称RSR法)是我国学者田凤调于1988年提出的&#xff0c;田教授是我国杰出的卫生统计学家&#xff0c;该方法最初提出时用于解决医学卫生领域的综合评价问题&#xff0c;后经各领域学者的补充和完善&#xf…...

【Vue3】【Naive UI】<NAutoComplete>标签

【Vue3】【Naive UI】标签 <NAutoComplete> 是 Naive UI 库中的一个组件&#xff0c;用于实现自动完成或联想输入功能。 它允许用户在输入时看到与当前输入匹配的建议列表&#xff0c;从而帮助用户更快地填写表单字段。 这个组件通常用于搜索框、地址输入等场景&#xff…...

SpringBoot自动装配原理

SpringBoot自动装配原理 在介绍SpringBoot自动装配原理之前我们需要先看一个注解 --> SpringBootApplication SpringBootApplication public class BackendApp {public static void main(String[] args) {SpringApplication.run(BackendApp.class, args);} }我们都知道Spr…...

Flask: flask框架是如何实现非阻塞并发的

写在前面:Flask框架是通过多线程/多进程+阻塞的socket实现非阻塞,其本质是基于python的源库socketserver实现的 前言 认识WSGI协议 认识Werkzeug flask是如何实现非阻塞的 本文使用的flask框架为最新的1.1.1版本,所有代码基于python3运行 一:前言 使用过flask或者其他web框…...

svg和canvas比较

SVG&#xff08;Scalable Vector Graphics&#xff09;和Canvas都是用于在网页上绘制图形的技术&#xff0c;但它们在工作原理、使用场景和特性上有所不同。以下是对SVG和Canvas的详细介绍及使用示例&#xff1a; 一、SVG 简介 SVG是一种基于XML的标记语言&#xff0c;用于描…...

【前端学习路线】(超详细版本)

先附上学习路线图&#xff1a;前端学习路线 第一阶段&#xff1a;前端入门&#xff08;htmlcss&#xff09; 前端最基本的知识&#xff0c;需要先将这些内容融汇贯通&#xff0c;学习后面内容才会不吃力。学习完可以做几个静态页练习一下。 推荐视频学习链接&#xff1a; 黑马程…...

VCU——matlab/simulink软件建模

一、认识MATLAB/Simulink 1. matlab主界面 2. simulink 二、Simulink 建模基础 1. Simulink模块 2. 模型的仿真 matlab 中比较两个浮点型&#xff0c;不要用&#xff0c;采取差值和Compare To Constant的方案 3. 自动代码生成...

ASP.NET Core SignalR 双工通信

01. 介绍 &#x1f3af; ASP.NET Core SignalR 是一个开放源代码库&#xff0c;它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码可以在服务器上激发事件时将事件推送到连接的客户端。 使用 SignalR&#xff0c;客户端也可以将消息发送到服务器&#xff…...

以数据驱动增长,火山引擎数智平台“数据找人”为双12营销提效

“双12”即将来临&#xff0c;众多商家最为关心的&#xff0c;莫过于如何借助对数据的充分利用实现降本增效&#xff0c;在竞争激烈的大环境中快人一步&#xff0c;为了达成这个目标&#xff0c;商家往往需要耗费人力、物力以及时间对海量数据进行寻找与分析。 那么&#xff0c…...

VuePress学习

1.介绍 VuePress 由两部分组成&#xff1a;第一部分是一个极简静态网站生成器 (opens new window)&#xff0c;它包含由 Vue 驱动的主题系统和插件 API&#xff0c;另一个部分是为书写技术文档而优化的默认主题&#xff0c;它的诞生初衷是为了支持 Vue 及其子项目的文档需求。…...

mysql cpu线上问题排查

查看当前的线程情况 show full processlist 查看当前的线程情况 SELECT * FROM performance_schema.threads WHERE PROCESSLIST_TIME > 0 查看当前数据库的连接数 SELECT * FROM performance_schema.threads WHERE PROCESSLIST_DB ‘db’ ; 查看当前mysql连接的数 SHOW GLO…...

QT6学习 第九天 QDialog

QT6学习第九天 QDialog 对话框 QDialog模态和非模态对话框标准对话框颜色对话框进度对话框 对话框 QDialog 模态和非模态对话框 QDialog 类是所有对话框类的基类。对话框是一个经常用来完成短小任务或和用户进行简单交互的顶层窗口。按照运行对话框时是否还可以和该程序的其…...

windows基础

系统目录 服务 端口 注册表 黑客常用DOS命令&#xff08;在拿到shell时会用到&#xff09; 一、 系统目录 Windows目录 系统的安装目录 System32configSAM文件 是用户密码的存储文件 System32etchost文件 记录本地解析&#xff08;优先级大于DNS域名解析&#xff09;可以自…...

《向量数据库指南》——OPPO分布式向量检索的实战与突破

OPPO对向量检索的探索:从单机到分布式的华丽转身 在当今这个数据爆炸的时代,如何高效地存储、检索和分析数据,成为了企业面临的一大挑战。特别是在人工智能领域,向量数据的处理更是占据了举足轻重的地位。OPPO,作为全球知名的智能手机制造商,自然也不会放过这个技术风口…...

golang语言机构和基础语法

语言结构和基础语法 1.包声明 2.引入包 3.函数 4.init函数 5.变量 6.标识符 7.行分隔符 8.语句&表达式 9.注释 10.公有成员与私有成员 11.关键字、保留字和预定义标志引用类型 1.切片 2.map 3.channel 4.interface 5.func 6.指针类型关键词 1.break 跳转语句&#xff0c…...

在 MacOS 上为 LM Studio 更换镜像源

在 MacOS 之中使用 LM Studio 部署本地 LLM时&#xff0c;用户可能会遇到无法下载模型的问题。 一般的解决方法是在 huggingface.co 或者国内的镜像站 hf-mirror.com 的项目介绍卡页面下载模型后拖入 LM Studio 的模型文件夹。这样无法利用 LM Studio 本身的搜索功能。 本文将…...

python之Django连接数据库

文章目录 连接Mysql数据库安装Mysql驱动配置数据库信息明确连接驱动定义模型在模型下的models.py中定义表对象在settings.py 中找到INSTALLED_APPS添加创建的模型 测试testdb.py中写增删改查操作urls.py添加请求路径启动项目进行测试 连接Mysql数据库 安装Mysql驱动 pip inst…...

LLM学习笔记(15)LangChain、LlamaIndex、LlamaIndex

Transformer 和 PyTorch 是什么关系&#xff1f; Transformer和PyTorch可以很好地配合使用&#xff0c;但它们并不是同一层面的工具。具体来说&#xff1a; Transformer是一个神经网络的架构&#xff0c;最初用于自然语言处理&#xff0c;但也可以扩展到其他任务&#xff08;…...

springai结合ollama

目录 ollama 介绍 使用 下载&#xff1a; 安装&#xff1a; 点击这个玩意next就行了。 运行 spring ai使用ollama调用本地部署的大模型 加依赖 配置yml 写代码 ollama 介绍 官网&#xff1a;Ollama Ollama是一个用于部署和运行各种开源大模型的工具&#xff1b; …...

扫描IP段内的使用的IP

扫描IP段内的使用的IP 方法一&#xff1a;命令行 命令行进入 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%iarp -a方法二&#xff1a;python from scapy.all import ARP, Ether, srp import keyboarddef scan_network(ip_range):# 创建一个ARP请求包arp ARP(pds…...

ai即可一键生成ppt解决烦恼

在快节奏的职场环境中&#xff0c;制作PPT已经成为许多人日常工作的一部分。尽管PPT看似简单&#xff0c;却常常让人耗费大量时间。好在技术的进步为我们带来了全新的解决方案&#xff0c;比如智能生成PPT&#xff0c;让那些深夜加班的人看到了曙光。 从“手动排版”到“一键生…...

三、【docker】docker和docker-compose的常用命令

文章目录 一、docker常用命令1、镜像管理2、容器管理3、容器监控和调试4、网络管理5、数据卷管理6、系统维护7、实用组合命令8、常用技巧二、docker-compose常用命令1、基本命令2、构建相关3、运行维护4、常用组合命令5、实用参数 一、docker常用命令 1、镜像管理 # 查看本地…...

「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果

本篇将带你实现一个带有闪烁动画的按钮交互效果。通过动态改变按钮颜色&#xff0c;用户可以在视觉上感受到按钮的闪烁效果&#xff0c;提升界面互动体验。 关键词 UI互动应用闪烁动画动态按钮状态管理用户交互 一、功能说明 闪烁按钮效果应用实现了一个动态交互功能&#xf…...

小白爬虫——selenium入门超详细教程

目录 一、selenium简介 二、环境安装 2.1、安装Selenium 2.2、浏览器驱动安装 三、基本操作 3.1、对页面进行操作 3.1.1、初始化webdriver 3.1.2、打开网页 3.1.3、页面操作 3.1.4、页面数据提取 3.1.5、关闭页面 3.1.6、综合小案例 3.2、对页面元素进行操作 3.2.…...

斯坦福李飞飞《AI Agent:多模态交互前沿调查》论文

多模态AI系统很可能会在我们的日常生活中无处不在。将这些系统具身化为物理和虚拟环境中的代理是一种有前途的方式&#xff0c;以使其更加互动化。目前&#xff0c;这些系统利用现有的基础模型作为构建具身代理的基本构件。将代理嵌入这样的环境中&#xff0c;有助于模型处理和…...

Wordpress ElementorPageBuilder插件存在文件读取漏洞(CVE-2024-9935)

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

多模态视频大模型Aria在Docker部署

多模态视频大模型Aria在Docker部署 契机 ⚙ 闲逛HuggingFace的时候发现一个25.3B的多模态大模型&#xff0c;支持图片和视频。刚好我有H20的GPU所以部署来看看效果&#xff0c;因为我的宿主机是cuda-12.1所以为了防止环境污染采用docker部署&#xff0c;通过一系列的披荆斩棘…...

【网盘系统】递归删除批量文件

为何需要用到递归&#xff1f; 在网盘系统中&#xff0c;文件的类型分为文件和文件夹两种类型。当我们想要批量删除文件时&#xff0c;不乏其中会包含文件夹&#xff0c;而想要删除这个文件夹&#xff0c;自然其中所包含的文件都要删除&#xff0c;而其中所包含的文件也有可能…...

产品转后端?2

产品经理的视角能让你成为更好的后端工程师&#xff1a; 理解业务需求转换为技术方案的过程知道为什么要这样设计API明白数据结构的选择如何影响用户体验了解性能指标对业务的实际影响 在实习过程中可以有意识地向后端倾斜&#xff1a; 常规产品经理工作&#xff1a; "…...

电子商务人工智能指南 2/6 - 需求预测和库存管理

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...

CSS中要注意的样式效果

1. 应用过渡效果 transition: var(--aa); 2.告诉浏览器元素可能会发生变换&#xff0c;从而优化性能。 will-change: transform; 3.使元素不响应鼠标事件。 pointer-events: none; 4.隐藏水平方向上的溢出内容 overflow-x: hidden; 5.定义一个元素的宽度和高度之间的比…...

CTFshowPHP特性

目录 web89 代码分析 playload web90 代码分析 playload web91 代码分析 playload web92 代码分析 playload web93 代码分析 playload web94 代码分析 playload web95 web96 代码分析 playload web97 代码分析 playload web98 代码分析 playload w…...

基于Springboot+Vue的电子博物馆系统

基于SpringbootVue的电子博物馆系统 前言&#xff1a;随着信息技术的不断发展&#xff0c;传统博物馆的参观方式逐渐向数字化、在线化转型。电子博物馆作为这一转型的重要组成部分&#xff0c;能够通过信息化手段为用户提供更丰富、更便捷的博物馆参观体验。本文基于Spring Boo…...

HarmonyOS:使用HTTP访问网络

HTTP 一、导入http模块 module.json5里添加网络权限 导入http模块 二、创建http请求 创建http请求 import { http } from kit.NetworkKitfunction getNetData() {// 创建数据请求对象let httpRequest http.createHttp() }三、发起请求 请求方法 四、请求示例 GET请求 PO…...

sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)

1. MySQL 条件 数据库用户需要具备高权限&#xff08;如 FILE 权限&#xff09;。数据库服务运行用户需要对目标目录有写权限。Web 服务器有可写目录&#xff0c;且支持执行上传的脚本&#xff08;如 PHP、JSP 等&#xff09;。 原理 利用 MySQL 的 SELECT ... INTO OUTFIL…...

浅谈网络安全态势感知

一、基本概念 前美国空军首席科学家Endsley博士给出的动态环境中态势感知的通用定义是: 态势感知是感知大量的时间和空间中的环境要素&#xff0c;理解它们的意义&#xff0c;并预测它们在不久将来的状态。 在这个定义中&#xff0c;我们可以提炼出态势感知的三个要素&#xf…...