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

Redis 持久化机制:RDB、AOF 与混合持久化

Redis 持久化机制RDB、AOF 与混合持久化面试热度⭐⭐⭐⭐⭐前置知识Redis 基本数据结构、Linux 进程 fork 概念 目录点击跳转1. 为什么 Redis 需要持久化2. RDB 持久化2.1 基本原理2.2 RDB 的触发方式2.3 RDB 文件结构2.4 配置与实战2.5 RDB 优缺点3. AOF 持久化3.1 基本原理3.2 AOF 的三种写回策略3.3 AOF 重写机制3.4 配置与实战3.5 AOF 优缺点4. RDB vs AOF 全面对比5. Redis 4.0 混合持久化6. 数据恢复流程与优先级7. 面试高频问答推荐阅读1. 为什么 Redis 需要持久化Redis 是一个内存数据库——所有数据都存在内存里。一旦进程退出、服务器重启或宕机内存数据就全丢了。┌─────────────────────────────────────┐ │ Redis 实例运行中 │ │ │ │ 内存: key1value1 key2value2 │ ← 所有读写都在内存 │ key3value3 key4value4 │ │ │ ├─────────────────────────────────────┤ │ ❌ 宕机 / 重启 / kill │ ├─────────────────────────────────────┤ │ │ │ 内存: 空空如也... │ ← 数据全没了 │ │ └─────────────────────────────────────┘持久化就是把内存里的数据定期写到磁盘上重启时再从磁盘加载回内存。┌──────────────┐ ┌──────────────┐ │ Redis 内存 │ ──持久化──→ │ 磁盘文件 │ │ key-value │ ←──恢复─── │ dump.rdb │ │ │ │ appendonly. │ │ │ │ aof │ └──────────────┘ └──────────────┘Redis 提供两种持久化方案方案机制文件格式数据完整性RDB(Redis Database)定时全量快照二进制压缩可能丢最后一次快照后的数据AOF(Append Only File)追加写操作日志文本协议最多丢 1 秒数据2. RDB 持久化2.1 基本原理RDB 的核心思想拍一张内存数据的快照存到磁盘。┌──────────────────────────────────────────┐ │ RDB 生成流程SAVE/BGSAVE │ │ │ │ ┌──────────┐ │ │ │ Redis │ SAVE命令 │ │ │ 主进程 │ ───────→ 同步生成 RDB │ │ └──────────┘ 阻塞所有客户端 │ │ │ │ ┌──────────┐ BGSAVE命令 │ │ │ Redis │ ───────→ fork 子进程 │ │ │ 主进程 │ 继续处理请求 │ │ └────┬─────┘ │ │ │ fork() │ │ ↓ │ │ ┌──────────┐ │ │ │ 子进程 │ ───────→ 写入临时 RDB 文件 │ │ │ (基于 │ 完成后替换旧 RDB │ │ │ COW) │ │ │ └──────────┘ │ └──────────────────────────────────────────┘fork Copy-On-Write写时复制是 RDB 不阻塞主进程的关键fork() 瞬间 ┌─────────────┐ ┌─────────────┐ │ 父进程 │ │ 子进程 │ │ 内存页表 │ ─────→│ 共享父进程 │ │ key1val1 │ │ 内存页表 │ │ key2val2 │ │ (只读共享) │ └─────────────┘ └─────────────┘ 子进程开始写 RDB 文件时读共享内存不阻塞父进程。 当父进程收到写请求要修改数据时 ┌─────────────┐ ┌─────────────┐ │ 父进程 │ │ 子进程 │ │ key1val1 │ │ key1val1 │ ← 子进程读的是旧数据快照 │ key2val2 │ │ key2val2 │ 父进程改了谁谁被复制 │ └─ 修改 key1 │ │ │ │ 复制 key1 页 →│ │ │ └─────────────┘ └─────────────┘✅父进程修改数据时被修改的内存页会复制一份给父子进程各自独立子进程始终持有 fork 瞬间的快照。2.2 RDB 的触发方式触发方式命令/场景是否阻塞主进程说明手动 SAVESAVE✅阻塞前台生成 RDB期间 Redis 不处理任何请求手动 BGSAVEBGSAVE❌ 不阻塞fork 子进程后台生成推荐手动方式自动触发配置文件 save 规则❌ 不阻塞满足条件时自动 BGSAVE关闭时触发shutdown 命令❌ 不阻塞正常关闭时自动生成 RDB主从复制全量复制❌ 不阻塞从节点连接时主节点可能生成 RDB# 手动触发127.0.0.1:6379SAVE OK# 阻塞式生产环境慎用127.0.0.1:6379BGSAVE Background saving started# 后台执行推荐127.0.0.1:6379LASTSAVE(integer)1716100500# 查看最近一次成功生成 RDB 的时间戳2.3 RDB 文件结构┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ │ MAGIC │ VERSION │ AUX │ DB │ DB │ EOF │ │ REDIS │ 0009 │ 字段 │ 数据 │ 数据 │ 标记 │ │ │ │ │ │ │ │ │ 5字节 │ 4字节 │ 键值对 │ n个 │ ... │ 8字节 │ │ │ │ 元信息 │ 键值对 │ │ 校验和 │ └──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘MAGIC文件头标识 “REDIS”VERSIONRDB 文件格式版本号目前 9AUX辅助字段如 Redis 版本、内存占用等元信息DB 数据实际的键值对数据按数据库编号分组存储EOF 校验和结束标记 8 字节 CRC64 校验2.4 配置与实战# redis.conf ── RDB 相关配置# ───── 自动触发规则 ─────# 格式save 秒数 修改次数# 以下三条规则满足任意一条即触发 BGSAVEsave9001# 900 秒15分钟内至少有 1 个 key 变化save30010# 300 秒5分钟 内至少有 10 个 key 变化save6010000# 60 秒1分钟 内至少有 10000 个 key 变化# 示例禁用 RDB注释掉所有 save 行或配置 save # save # ───── 文件名和路径 ─────dbfilename dump-6379.rdb# RDB 文件名同一台机器用不同端口区分dir/data/redis# RDB 和 AOF 文件的存储目录# ───── 性能相关 ─────stop-writes-on-bgsave-erroryes# BGSAVE 失败时是否停止写入rdbcompressionyes# 是否压缩 RDB 文件LZF 压缩rdbchecksumyes# 是否使用 CRC64 校验和生产建议给 RDB 文件按端口命名比如dump-6379.rdb一台机器部署多个 Redis 实例时不会互相覆盖。2.5 RDB 优缺点优点缺点文件紧凑适合备份和灾难恢复可直接 scp 传输可能丢数据——两次快照之间的数据全部丢失恢复速度极快直接加载到内存比 AOF 快 10 倍以上fork 子进程可能耗时大数据量时子进程写 RDB主进程性能影响小COW 机制fork 期间如果父进程有大写入COW 会导致内存翻倍单个文件迁移、复制非常方便无法做到实时持久化RDB 是定时快照3. AOF 持久化3.1 基本原理AOF 的核心思想把每条写命令都追加到文件末尾。┌────────────────────────────────────────────┐ │ AOF 写入流程 │ │ │ │ 客户端发 SET key value │ │ ↓ │ │ ① Redis 执行命令修改内存数据 │ │ ↓ │ │ ② 将命令追加到 server.aof_buf缓冲区 │ │ ↓ │ │ ③ 根据 appendfsync 策略决定何时 fsync 到磁盘 │ │ ↓ │ │ ④ 写入磁盘的 AOF 文件 │ └────────────────────────────────────────────┘# AOF 文件里存的是啥看看就知道了127.0.0.1:6379SET name张三OK127.0.0.1:6379INCR counter(integer)1127.0.0.1:6379RPUSH list a b c(integer)3AOF 文件内容纯文本 Redis 协议格式*3 ← * 表示数组3 表示 3 个元素 $3 ← $ 表示字符串3 表示长度 SET ← 命令名 $4 name $6 张三 *2 $4 INCR $7 counter *3 $5 RPUSH $4 list $1 a $1 b $1 c AOF 文件是纯文本的 Redis 协议格式可以直接用cat查看也可以手动修改不推荐甚至可以用redis-check-aof修复损坏的 AOF 文件。3.2 AOF 的三种写回策略这是面试常考的点——appendfsync参数# redis.confappendfsync always# 每次写命令都 fsyncappendfsync everysec# 每秒 fsync 一次默认appendfsync no# 由操作系统决定何时刷盘appendfsync过程数据安全性性能always每执行一条写命令立即写入磁盘最多丢 1 条命令最安全最慢约 10,000 ops/severysec每秒将缓冲区 fsync 到磁盘一次最多丢 1 秒数据快约 50,000 ops/sno由操作系统调度刷盘通常 30 秒可能丢大量数据最快OS 自行优化合并┌─────────────────────────────────────────────────────┐ │ 三种 appendfsync 策略对比时间线 │ │ │ │ always: │ │ SET a 1 ──fsync──→ SET b 2 ──fsync──→ SET c 3 │ │ 磁盘 磁盘 磁盘 │ │ │ │ everysec: │ │ SET a 1 ──→ SET b 2 ──→ SET c 3 ──fsync──→ ... │ │ 缓冲区 磁盘每秒一次 │ │ │ │ no: │ │ SET a 1 ──→ SET b 2 ──→ ... ──→ ... ──→ fsync │ │ 缓冲区 OS 决定何时写 │ └─────────────────────────────────────────────────────┘推荐生产环境用everysec——性能和安全的折中最多丢 1 秒数据。3.3 AOF 重写机制AOF 是追加写入文件会无限膨胀。比如# 对同一个 key 操作 1000 次INCR counter# AOF 记录这条INCR counter# AOF 记录这条...# 999 条重复INCR counter# AOF 记录这条1000 条 INCR 命令 → 最终结果 SET counter 1000AOF 重写就是把内存里的数据重新生成一份最简的 AOF 文件AOF 重写前1000 条 INCR INCR counter INCR counter INCR counter ...997条 INCR counter ↓ 重写读取内存中的 counter 当前值 AOF 重写后1 条命令 SET counter 1000AOF 重写流程BGREWRITEAOF┌─────────────────────────────────────────────────────┐ │ AOF 重写流程 │ │ │ │ ① 触发条件满足配置或手动 │ │ ↓ │ │ ② 父进程 fork 一个子进程 │ │ ↓ │ │ ③ 子进程根据当前内存数据生成新的 AOF 文件 │ │ ↓ │ │ ④ 在此期间父进程继续处理请求 │ │ ┌─────────────────────────────────┐ │ │ │ 写命令 → 旧的 AOF 缓冲区正常写入│ │ │ │ → AOF 重写缓冲区增量 │ │ │ └─────────────────────────────────┘ │ │ ↓ │ │ ⑤ 子进程重写完成后通知父进程 │ │ ↓ │ │ ⑥ 父进程将 AOF 重写缓冲区的增量数据写入新文件 │ │ ↓ │ │ ⑦ 原子替换新 AOF 文件 → 覆盖旧文件 │ └─────────────────────────────────────────────────────┘AOF 重写的触发方式# 手动触发127.0.0.1:6379BGREWRITEAOF Background append onlyfilerewriting started# redis.conf ── 自动触发配置auto-aof-rewrite-percentage100# 当前 AOF 文件比上次重写时增长 100% 时触发auto-aof-rewrite-min-size 64mb# AOF 文件至少达到 64MB 才触发防止小文件频繁重写# 例子上次重写后 AOF 为 64MB当前 128MB → 增长 100% → 触发重写3.4 配置与实战# redis.conf ── AOF 相关配置# 开启 AOF默认关闭appendonlyyes# AOF 文件名appendfilenameappendonly-6379.aof# 写回策略推荐 everysecappendfsync everysec# AOF 重写配置auto-aof-rewrite-percentage100auto-aof-rewrite-min-size 64mb# 重写期间是否 fsync# 如果设为 yes重写期间每写一部分就 fsync安全但慢# 设为 no重写期间不额外 fsync快但可能丢数据no-appendfsync-on-rewrite no# 加载 AOF 时是否忽略截断的最后一条不完整命令# Redis 宕机可能导致 AOF 末尾不完整设为 yes 则尽力恢复aof-load-truncatedyes3.5 AOF 优缺点优点缺点数据安全性高everysec 最多丢 1 秒always 丢 1 条相同数据量下AOF 文件比 RDB 大得多文本协议 vs 二进制AOF 文件可读纯文本 Redis 协议便于排查问题恢复速度慢需要逐条执行命令重建数据支持后台重写避免文件无限膨胀同样数据量下AOF 比 RDB 重写/加载慢AOF 文件可手动编辑误操作时可以删最后一条命令—4. RDB vs AOF 全面对比对比维度RDBAOF文件格式二进制压缩文本Redis 协议写入方式定时全量快照实时追加写命令数据安全性可能丢两次快照间全部数据everysec 丢 1 秒always 丢 1 条恢复速度极快直接加载到内存慢逐条 redo 命令文件体积小压缩大纯文本文件可读性不可读可读可编辑对性能影响fork COW大实例 fork 耗时everysec 影响很小备份便利性好单个文件可离线复制一般文件大但可用重写压缩持久化粒度分钟级快照秒级/命令级是否容易损坏二进制损坏难修复文本损坏可修复redis-check-aof如何选择┌──────────────────────────────────────┐ │ 选择策略 │ │ │ │ 能接受丢几分钟数据 │ │ ├── ✅ 是 → 只用 RDB最简单 │ │ └── ❌ 否 → 需要 AOF │ │ │ │ 对恢复速度有要求 │ │ ├── ✅ 是 → 推荐 RDB AOF 混用 │ │ └── ❌ 否 → AOF 足够 │ │ │ │ 内存很大 10GBfork 慢 │ │ ├── ✅ 是 → 考虑 RDB 调大 save 间隔 │ │ │ 或只用 AOF省去 fork 开销 │ │ └── ❌ 否 → 都行 │ └──────────────────────────────────────┘5. Redis 4.0 混合持久化从 Redis 4.0 开始支持RDB AOF 混合持久化——结合两者优点。# redis.confaof-use-rdb-preambleyes工作原理混合持久化 AOF 文件结构 ┌──────────────────────────────────────┐ │ ┌────────────────────────┐ │ │ │ RDB 格式数据 │ ← 重写时│ │ │ (内存快照的二进制数据) │ 生成 │ │ └────────────────────────┘ │ │ │ │ ┌────────────────────────┐ │ │ │ AOF 增量命令 │ ← 重写后│ │ │ (以 Redis 协议格式) │ 增量 │ │ └────────────────────────┘ │ └──────────────────────────────────────┘重写时的行为BGREWRITEAOF 不再生成纯文本 AOF而是先生成 RDB 格式的快照写入 AOF 文件然后后续的增量写命令以 AOF 格式追加。恢复时的行为先加载 RDB 部分极快再执行 AOF 增量命令补上 RDB 快照之后的数据纯 RDB纯 AOF混合持久化恢复速度极快慢快RDB 部分秒级数据精度分钟级秒级秒级文件体积最小大中RDB 格式压缩了历史数据兼容性所有版本所有版本Redis 4.0生产推荐Redis 4.0 开启混合持久化——既有 RDB 的恢复速度又有 AOF 的数据安全性。6. 数据恢复流程与优先级Redis 重启时加载持久化文件的完整流程┌──────────────────┐ │ Redis 启动 │ └────────┬─────────┘ ↓ ┌──────────────────────────────┐ │ 检查是否有 AOF 文件 │ │ 判断条件appendonly yes │ │ appendonly.aof 文件存在 │ └──────────┬───────┬───────────┘ │ │ 是 │ │ 否 ↓ ↓ ┌─────────────────┐ ┌─────────────────┐ │ 加载 AOF 文件 │ │ 检查是否有 RDB │ │ 重放所有写命令 │ │ 文件 │ │ 恢复内存数据 │ └────────┬────────┘ └────────┬────────┘ │ ↓ ↓ ┌──────────────┐ ┌──────────────┐ │ 加载成功 ✅ │ │ 加载 RDB 文件 │ └──────────────┘ └──────────────┘ ↓ ┌──────────────┐ │ 加载成功 ✅ │ └──────────────┘优先级AOF RDB为什么 AOF 优先级更高因为 AOF 的数据通常比 RDB 更新秒级 vs 分钟级。但如果开启了混合持久化AOF 文件里包含了 RDB 快照部分加载 RDB 部分极快再补 AOF 增量。7. 面试高频问答问题参考答案要点难度Redis 为什么快还做持久化Redis 是内存数据库进程退出数据就没有了。持久化是为了数据安全和灾难恢复重启时从磁盘重新加载。不用持久化的场景纯缓存不需要开⭐⭐RDB 的 BGSAVE 为什么几乎不阻塞主进程因为fork Copy-On-Write写时复制。fork 创建子进程共享父进程内存页表子进程将内存数据写入 RDB 文件。父进程修改数据时被修改的内存页会复制一份给子进程持有旧值。子进程始终持有 fork 瞬间的完整快照⭐⭐⭐⭐RDB 的 fork 有什么风险①fork 耗时Redis 内存越大 fork 越慢10GB 实例可能 fork 几百毫秒②COW 内存膨胀fork 后父进程大量写入COW 可能导致内存峰值是平时的 2 倍③ 如果stop-writes-on-bgsave-error yes磁盘满了写不了 RDB 时Redis 会拒绝写入⭐⭐⭐⭐AOF 的三种写回策略怎么选always每次写命令都 fsync最安全最慢约 1w ops/s。everysec每秒 fsync 一次最多丢 1 秒数据约 5w ops/s。noOS 决定刷盘时机可能丢大量数据。生产推荐 everysec⭐⭐⭐AOF 文件越来越大怎么处理用AOF 重写BGREWRITEAOF。自动触发条件auto-aof-rewrite-percentage 100比上次增长 100%auto-aof-rewrite-min-size 64mb至少 64MB。重写时 fork 子进程根据当前内存生成最简 AOF不会无限膨胀⭐⭐⭐RDB 和 AOF 可以同时开吗可以。Redis 支持同时开启两者。重启时优先用 AOF 恢复数据更新。Redis 4.0 推荐混合持久化AOF 文件头部存 RDB 快照 尾部存 AOF 增量既有 RDB 的恢复速度又有 AOF 的数据安全性⭐⭐⭐主从复制中持久化有什么影响主节点做 BGSAVE 生成的 RDB 文件传给从节点完成全量同步。如果主节点关闭了持久化但有从节点主节点重启后数据为空从节点同步也会清空——主从持久化必须同时考虑⭐⭐⭐⭐Redis 挂了怎么恢复数据① 确认持久化文件存在dump.rdb / appendonly.aof② 按原配置启动 Redis③ 自动加载AOF 存在则加载 AOF否则加载 RDB④ 如果文件损坏用redis-check-rdb或redis-check-aof修复⭐⭐持久化对性能影响大吗RDB平时不影响只有定时快照时 forkfork 期间 COW 会有点 CPU 和内存开销。AOF everysec基本不影响每秒一次 fsync 由后台线程执行。主要性能杀手是 fork 耗时和 AOF always 策略⭐⭐⭐Redis 7.x 对持久化有什么新特性①Multi-Part AOF将 AOF 拆为多个文件基础文件 增量文件重写时只重写基础部分增量部分持续写入②AOF 文件更细粒度重写效率更高。整体架构更稳定减少了重写期间大量数据复制⭐⭐⭐⭐标签#Java#面试#Redis#持久化#RDB#AOF#后端开发#秋招互动话题你在生产环境用哪种持久化方案碰过什么诡异的持久化问题吗评论区见。

相关文章:

Redis 持久化机制:RDB、AOF 与混合持久化

Redis 持久化机制:RDB、AOF 与混合持久化 面试热度:⭐⭐⭐⭐⭐ 前置知识:Redis 基本数据结构、Linux 进程 fork 概念 📑 目录(点击跳转) 1. 为什么 Redis 需要持久化2. RDB 持久化 2.1 基本原理2.2 RDB 的…...

libvncserver实战:给你的嵌入式Linux设备(如树莓派)添加远程桌面控制功能

libvncserver嵌入式实战:为树莓派等设备构建轻量级远程桌面方案 在工业控制、智能家居和边缘计算场景中,嵌入式设备的远程可视化操作需求日益增长。传统方案如SSH仅能提供命令行交互,而完整的桌面环境又过于臃肿。本文将展示如何利用libvncse…...

告别‘自消’:深入浅出聊聊协方差矩阵重建与对角加载如何拯救你的波束形成器

告别‘自消’:深入浅出聊聊协方差矩阵重建与对角加载如何拯救你的波束形成器 雷达工程师老张盯着屏幕上的波束图皱起了眉头——明明仿真时完美的指向性波束,在实际测试中却像被"咬掉一块"的月饼,目标信号区域出现了诡异的凹陷。这种…...

Pixelle-Video全球化架构:智能AI短视频引擎的多语言解决方案

Pixelle-Video全球化架构:智能AI短视频引擎的多语言解决方案 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixelle-Video作…...

保姆级教程:手把手教你用ROS话题转发搞定CARLA与Autoware的传感器数据对齐

保姆级教程:手把手教你用ROS话题转发搞定CARLA与Autoware的传感器数据对齐 当你在深夜的实验室里终于让CARLA仿真器和Autoware自动驾驶系统分别跑通时,那种成就感可能持续不到30秒——因为接下来你会发现,CARLA输出的传感器数据在Autoware中就…...

Seed-VC语音克隆指南:5分钟实现零样本实时语音转换的终极方案

Seed-VC语音克隆指南:5分钟实现零样本实时语音转换的终极方案 【免费下载链接】seed-vc zero-shot voice conversion & singing voice conversion, with real-time support 项目地址: https://gitcode.com/GitHub_Trending/se/seed-vc 你是否曾想过&…...

CANN/asc-devkit Round接口文档

Round 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann…...

告别机械音!用‘小蜗语音工具1.9’制作有声小说和视频字幕的保姆级教程

告别机械音!用‘小蜗语音工具1.9’制作有声小说和视频字幕的保姆级教程 在内容创作爆炸的时代,有声小说和视频字幕已成为吸引用户注意力的关键。然而,传统语音合成工具常因生硬的机械音、单调的语调让作品失去灵魂。小蜗语音工具1.9的多角色对…...

别再手动填Excel了!用EasyExcel 3.3.2 + SpringBoot实现模板化导出(附金额大写工具类)

告别手工填表:SpringBootEasyExcel智能报表生成实战 财务小张每周五下午都要面对同样的噩梦:从ERP系统导出销售数据,然后对照模板手动填写上百行Excel报表。金额大写转换要逐个核对,格式错位要反复调整,加班到深夜已成…...

Cat-Catch:浏览器资源嗅探的终极解决方案与实用指南

Cat-Catch:浏览器资源嗅探的终极解决方案与实用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在当今数字内容爆炸的时代&#xf…...

STR71X芯片JTAG失效分析与Bootloader恢复指南

1. STR71X设备JTAG接口失效的典型场景分析当使用Keil MDK开发环境和ULINK2调试器连接STR71X系列芯片时,开发者常会遇到"Couldnt stop ARM device"的错误提示。这种情况通常发生在两种典型场景:芯片意外进入了低功耗模式(Power-down…...

2026年B站资源下载全攻略:3步学会用BiliTools高效保存视频

2026年B站资源下载全攻略:3步学会用BiliTools高效保存视频 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...

JupyterLab Desktop完整指南:5个秘诀让数据科学工作更简单

JupyterLab Desktop完整指南:5个秘诀让数据科学工作更简单 【免费下载链接】jupyterlab-desktop JupyterLab desktop application, based on Electron. 项目地址: https://gitcode.com/gh_mirrors/ju/jupyterlab-desktop 还在为Python环境配置和JupyterLab安…...

终极Axel下载加速指南:让你的文件下载速度翻倍

终极Axel下载加速指南:让你的文件下载速度翻倍 【免费下载链接】axel Lightweight CLI download accelerator 项目地址: https://gitcode.com/gh_mirrors/ax/axel Axel是一款轻量级命令行下载加速工具,通过多线程技术显著提升文件下载速度。无论你…...

CANN/asc-devkit LogSoftMax Tiling接口文档

LogSoftMax Tiling 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitc…...

程序员AI大模型转型:从入门到精通,轻松掌握大模型开发,高薪职位等你来拿!

在人工智能(AI)迅速发展的背景下,从传统的编程领域如Java程序员转向大模型开发是一个既充满挑战也充满机遇的过程。对于 Java 程序员来说,这也是一个实现职业转型、提升薪资待遇的绝佳机遇。 一、明确大模型概念 简单来说&#xf…...

TVA视觉新范式:工业视觉的百年未有之大变局(2)

重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...

告别复制粘贴!用Python+GoBot Pro 1.0,5分钟搞定Excel数据自动录入网页表单

告别复制粘贴!用PythonGoBot Pro 1.0,5分钟搞定Excel数据自动录入网页表单 在数据驱动的时代,重复性劳动正成为效率的最大杀手。每天面对成百上千条Excel数据需要手动录入网页表单的场景,从市场调研、活动报名到用户注册&#xff…...

Qalculate! 终极数学计算库:从新手到专家的完整指南

Qalculate! 终极数学计算库:从新手到专家的完整指南 【免费下载链接】libqalculate Qalculate! library and CLI 项目地址: https://gitcode.com/gh_mirrors/li/libqalculate Qalculate! 是一个功能强大的开源数学计算库,它提供了从简单算术到复杂…...

强力解锁:5分钟掌握暗黑破坏神2存档编辑器的核心功能

强力解锁:5分钟掌握暗黑破坏神2存档编辑器的核心功能 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾为刷取一件心仪的暗黑2装备耗费数小时?是否想快速测试不同的角色build却苦于重复练级&#x…...

迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧)

迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧) 迷宫寻路算法一直是编程学习者和算法爱好者热衷探索的领域。其中,流水算法因其独特的物理模拟思路而备受关注。但在实际实现过程中&#x…...

从Simulink到Tina:硬件工程师如何更“接地气”地获取电路传递函数?

从Simulink到Tina:硬件工程师如何更“接地气”地获取电路传递函数? 在系统级仿真与PCB调试的鸿沟之间,硬件工程师常常面临一个尴尬的现实:Simulink的数值解虽然精确,却像黑箱般难以直接指导电路板上电阻电容的调整。当…...

树莓派Web IDE:零配置云端编程环境与Python硬件模拟实践

1. 项目概述:一个“开箱即用”的编程环境革命最近,树莓派基金会悄无声息地扔下了一颗“重磅炸弹”——他们正式推出了一个网页端的代码编辑器。这个消息在创客圈和教育圈里,可能比发布一款新硬件还要让人兴奋。为什么?因为它直接戳…...

基于Hi3861与WM8978的嵌入式智能录音笔设计与实现

1. 项目概述:当Hi3861遇见WM8978,一个录音笔的诞生最近在捣鼓Hi3861这块开发板,想用它做点有意思的东西。Hi3861是海思(现在叫海思了)推出的一款面向IoT领域的Wi-Fi SoC,性能对于简单的音频处理来说&#x…...

Formation:macOS前端开发环境一键配置终极指南

Formation:macOS前端开发环境一键配置终极指南 【免费下载链接】formation 💻 macOS setup script for front-end development 项目地址: https://gitcode.com/gh_mirrors/fo/formation Formation是一款专为macOS设计的前端开发环境配置脚本&…...

保姆级教程:用VASP+VTST脚本搞定CI-NEB过渡态计算(从编译到出图)

从零构建VASPVTST的CI-NEB计算体系:科研级过渡态求解实战指南 在计算材料科学领域,精确确定化学反应或扩散过程的过渡态结构是理解反应机理的关键。传统NEB方法虽能描绘反应路径,但对鞍点的定位精度有限——这正是CI-NEB方法的价值所在。本文…...

OpenClaw从入门到应用——工具(Tools):技能配置

通过OpenClaw实现副业收入:《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》 所有与技能相关的配置都位于 ~/.openclaw/openclaw.json 中的 skills 字段下。 {skills: {allowBundled: ["gemini", "peekaboo"],load: {ext…...

异步分布式k-mer计数算法DAKC解析与优化

1. 异步分布式k-mer计数算法解析 k-mer计数是基因组分析中的基础操作,它统计DNA序列中所有长度为k的子串出现频率。这项技术在基因组组装、宏基因组分析等场景中扮演着关键角色。传统方法在处理大规模数据时面临性能瓶颈,而分布式异步算法DAKC通过创新设…...

AArch64虚拟内存系统架构与地址转换详解

1. AArch64虚拟内存系统架构概述虚拟内存是现代计算机系统的核心机制,它通过地址转换技术将程序使用的虚拟地址(VA)映射到实际的物理地址(PA)。AArch64作为ARMv8-A和ARMv9-A架构的64位执行状态,其虚拟内存系统在设计上兼顾了灵活性和性能需求。在AArch64…...

量子门合成技术GULPS:异构硬件下的高效量子电路编译

1. 量子门合成基础与GULPS创新点 量子计算的核心操作单元是量子门,其中双量子位门(如CNOT、iSWAP等)在构建量子算法中扮演着关键角色。传统量子门合成方法主要围绕CNOT门展开,这种单一视角在面对现代量子硬件日益丰富的异构指令集…...