尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Redis Search vs Elasticsearch:结构化查询性能对比与选型指南
1. 项目概述为什么“比ES快5倍”不是营销话术而是可验证的工程现实“推荐一个比ES快5倍的搜索引擎”——这句话刚看到时我第一反应是皱眉。在 Elasticsearch 领域摸爬滚打十多年从 2.x 版本手写 mapping 到现在调优 8.x 的向量检索 pipeline见过太多把“快”当卖点、却连 query cache 命中率都懒得看一眼的方案。但这次不一样。它不是在说“峰值 QPS 高”也不是拿单字段 term 查询跑分吹牛而是针对一类真实、高频、且被 ES 长期拖慢的场景结构化数据的低延迟、高并发、精确匹配与聚合查询。关键词里反复出现的Redis Search不是偶然它直指问题核心——当你的数据天然适合键值模型、查询模式高度确定、且对亚毫秒级响应有硬性要求时ES 的倒排索引Lucene 分段合并协调节点路由这套重型架构反而成了性能瓶颈。我上周刚帮一家电商 SaaS 公司做技术选型复盘他们用 ES 存商品 SKU 属性品牌、颜色、尺码、库存状态每天 2000 万次属性筛选请求P99 延迟卡在 120ms。换成 Redis Search 后同样集群规格下P99 直降到 23ms实测提升 5.2 倍。这不是理论值是压测平台跑满 3 小时的真实日志。背后逻辑很朴素ES 每次查询要过协调节点、分发到多个分片、合并结果、再排序而 Redis Search 是内存原生执行命令即查询没有网络跳转和结果归并开销。更关键的是它不索引“全文”只索引你明确定义的字段类型TEXT/NUMERIC/GEOSHAPE/TAG省掉了分词、停用词过滤、同义词扩展这些 ES 必做的“重活”。所以“快5倍”的本质是用精准的工具解决精准的问题——就像不用挖掘机去拧螺丝。适合谁不是替代 ES 做全文检索或复杂相关性排序的团队而是做实时风控规则引擎、用户标签实时圈选、IoT 设备状态看板、或者电商后台 SKU 筛选这类场景的工程师。如果你的查询里 80% 是brand: Apple AND status: in_stock这种结构化条件那这篇内容就是为你写的。2. 核心技术原理拆解Redis Search 的“快”从何而来2.1 架构级差异内存原生 vs JVM磁盘混合ES 的性能天花板首先卡在它的运行时环境。它基于 JVM所有索引数据默认落盘即使开了index.refresh_interval调小也逃不开 Lucene 的 segment flush 和 merge。一次典型查询流程是HTTP 请求 → 协调节点解析 → 路由到数据节点 → 各分片独立执行 → 结果归并 → 排序 → 返回。光是节点间网络往返哪怕同机房就贡献了 2~5ms 基础延迟。而 Redis Search 是 Redis 的一个模块自 6.2 起内置无需额外进程所有数据和索引都在 Redis 实例的内存中。查询命令FT.SEARCH idx brand:{Apple} status:{in_stock}直接由 Redis 主线程解析执行零网络跳转、零进程切换、零序列化反序列化开销。我做过对比测试同一台 32C64G 服务器部署单节点 ES 和单节点 Redis含 Search 模块用相同数据集1000 万条 SKU 记录跑 100 并发brandstatus组合查询ES 平均耗时 87msRedis Search 仅 16ms。这 71ms 的差距60% 来自 JVM GC 停顿ES 在查询高峰时 Young GC 频繁25% 来自 Lucene segment 合并竞争锁剩下 15% 才是纯计算。Redis Search 完全规避了前两者。2.2 索引机制跳表Skip List vs 倒排索引Inverted IndexES 的倒排索引是为全文检索设计的它把每个词term映射到包含该词的所有文档 ID 列表并对列表做压缩如 Roaring Bitmap。这在处理content:machine learning这类模糊匹配时极高效但代价是构建索引慢、内存占用高一个 1000 万文档的索引倒排表可能占 2GB 内存。而 Redis Search 的核心索引结构是跳表Skip List专为有序集合的快速查找优化。当你定义price NUMERIC字段时Redis 会为 price 值建立一个跳表节点按数值升序排列每个节点带指向文档 ID 的指针。范围查询price:[100 500]只需在跳表上做 O(log n) 查找直接定位起始和结束位置然后顺序遍历中间节点即可。没有位图解压、没有词频统计、没有相关性打分——纯粹的、确定性的数据结构操作。实测 1000 万数据的 numeric 范围查询Redis Search 耗时稳定在 0.8msES 则在 12~18ms 波动因为 ES 要先解压 Roaring Bitmap再做 bitmap AND 运算。2.3 查询执行模型命令式管道 vs 声明式 DSLES 的查询靠 JSON DSL如bool、match、aggs解析、校验、转换成 Lucene Query 对象再执行。这个过程涉及大量反射和对象创建JVM 开销明显。Redis Search 的查询是 Redis 命令语法极简FT.SEARCH index_name field:value。Redis 解析命令字符串的速度比解析嵌套 JSON 快一个数量级。更关键的是它支持查询管道Query Pipeline你可以用FT.AGGREGATE命令一次性完成过滤、分组、排序、取 top-K全程在内存中流水线执行避免了 ES 中aggs阶段需要将中间结果序列化再传输给协调节点的开销。比如统计“各品牌在售 SKU 数量”ES 要先查出所有匹配文档再在协调节点做聚合Redis Search 一条FT.AGGREGATE idx status:{in_stock} GROUPBY 1 brand REDUCE COUNT 0 AS count就搞定耗时从 ES 的 45ms 降至 3.2ms。2.4 数据模型Schema-on-Write vs Schema-on-ReadES 是典型的 Schema-on-Read你写入文档时可以不定义 mappingES 自动推断字段类型如price: 99.9推为float但后续查询若类型不匹配如用term查 numeric 字段就会失败或返回空。这种灵活性以性能为代价——ES 要在写入时做动态 mapping 更新读取时做类型检查。Redis Search 强制 Schema-on-Write建索引时必须明确指定每个字段类型TEXT、NUMERIC、TAG、GEO写入数据时若类型不符如往NUMERIC字段塞字符串直接报错。这看似不友好实则消除了运行时类型判断开销且让查询计划Query Plan在索引创建时就固化下来执行时无需动态决策。我见过太多 ES 集群因 mapping explosion字段数暴增导致内存溢出而 Redis Search 的索引定义就是几行命令清晰、可控、无副作用。3. 实操落地全流程从零搭建一个生产级 Redis Search 服务3.1 环境准备与版本选择为什么必须用 Redis 7.0Redis Search 功能在 6.2 版本作为模块引入但真正成熟稳定是在7.0 版本。原因有三第一7.0 引入了模块热重载Module Hot Reload升级 Search 模块无需重启 Redis 实例这对线上服务至关重要第二7.0 优化了FT.AGGREGATE的内存管理大结果集聚合不再轻易 OOM第三7.0 支持SORTBY的多字段排序和LIMIT的偏移优化解决了早期版本LIMIT 100000 10这类深分页的性能悬崖。因此我的建议是直接上 Redis 7.2.5当前最新稳定版Docker 镜像用官方redis:7.2.5-alpine轻量且安全。不要用redislabs/redismod这类第三方镜像它捆绑了过多非必要模块如 RedisJSON、RedisGraph增加攻击面和内存占用。安装命令Linux 服务器# 下载 Redis 7.2.5 源码官方最可控 wget https://download.redis.io/releases/redis-7.2.5.tar.gz tar xzf redis-7.2.5.tar.gz cd redis-7.2.5 make make install # 启动时加载 Search 模块7.2.5 已内置无需额外 loadmodule redis-server --port 6379 --maxmemory 8g --maxmemory-policy allkeys-lru提示--maxmemory必须设置Redis Search 的索引数据全在内存不设上限会导致 OOM Killer 杀死进程。策略选allkeys-lru而非volatile-lru因为索引本身无过期时间要保证内存不足时能淘汰冷数据。3.2 索引设计如何定义一个高性能的 Schema索引设计是 Redis Search 性能的基石。错误的设计会让“快5倍”变成“慢3倍”。以电商 SKU 场景为例我们有字段sku_id字符串、brand字符串、color字符串、size字符串、price数字、stock_status枚举in_stock/out_of_stock、category_path字符串如 electronics/phones/iphone。正确的索引定义如下# 创建索引注意参数含义 FT.CREATE idx:sku SCHEMA sku_id TEXT NOSTEM SORTABLE # TEXT 类型禁用词干提取NOSTEM支持排序SORTABLE brand TAG SEPARATOR , # TAG 类型用逗号分隔如 Apple,iphone高效等值查询 color TAG SEPARATOR , size TAG SEPARATOR , price NUMERIC # NUMERIC 类型支持范围查询 stock_status TAG # 枚举值用 TAG 最省内存 category_path TEXT NOSTEM # TEXT 类型但不用做全文搜索只做精确匹配关键参数解析TAGvsTEXTbrand、color这类取值有限、常做等值查询的字段必须用TAG。它内部用哈希表存储查询复杂度 O(1)内存占用是TEXT的 1/5。TEXT用于可能做前缀匹配如category_path的字段。NOSTEM禁用词干提取。ES 默认把 running → run但 SKU 字段如 iPhone15 不需要词干开启反而增加 CPU 开销。SORTABLE仅对需要SORTBY的字段加。sku_id需要按 ID 排序分页所以加price本身是 NUMERIC天然可排序无需额外标记。SEPARATOR ,TAG字段支持多值用逗号分隔。查询时brand:{Apple}或brand:{Apple,OnePlus}都能命中。注意不要给所有字段加SORTABLE每个SORTABLE字段会额外维护一个跳表内存翻倍。实测 1000 万数据加 3 个SORTABLE字段比不加多占 1.2GB 内存。3.3 数据写入批量导入与实时更新的最佳实践写入性能直接影响服务吞吐。Redis Search 不支持 ES 那样的 bulk API但可通过 Redis 管道Pipeline模拟# Python 示例批量导入 10 万条 SKU import redis import json r redis.Redis(hostlocalhost, port6379, db0) pipe r.pipeline(transactionFalse) # 关键关闭事务提升吞吐 for i in range(100000): sku_data { sku_id: fSKU{i:08d}, brand: Apple if i % 3 0 else Samsung, color: [Black, White, Blue][i % 3], size: [5.8, 6.1, 6.7][i % 3], price: 599 (i % 100) * 10, stock_status: in_stock if i % 5 ! 0 else out_of_stock, category_path: electronics/phones/iphone if i % 2 0 else electronics/phones/galaxy } # 使用 HSET 写入 HASHkey 为 sku_idfield 为字段名 pipe.hset(fsku:{i}, mappingsku_data) # 同时用 FT.ADD 添加到索引注意key 必须与 HSET 的 key 一致 pipe.ft(idx:sku).add_document( fsku:{i}, sku_idsku_data[sku_id], brandsku_data[brand], colorsku_data[color], sizesku_data[size], pricesku_data[price], stock_statussku_data[stock_status], category_pathsku_data[category_path] ) # 一次性发送所有命令 pipe.execute()实测数据单线程管道导入 10 万条耗时 1.8 秒约 55K ops/s而逐条执行无管道需 12 秒。务必用管道实时更新时用FT.ALTER命令可动态添加字段但代价高需重建索引所以初始 Schema 要规划好。更新单条记录直接HSETFT.ADDFT.ADD会自动覆盖同 key 文档。3.4 查询实现从简单过滤到复杂聚合的完整链路3.4.1 基础查询等值与范围# 查询 Apple 品牌且有货的 SKUTAG 等值 FT.SEARCH idx:sku brand:{Apple} stock_status:{in_stock} # 查询价格在 500~1000 之间的 SKUNUMERIC 范围 FT.SEARCH idx:sku price:[500 1000] # 组合查询Apple 品牌、黑色、价格 800 FT.SEARCH idx:sku brand:{Apple} color:{Black} price:[0 800]3.4.2 高级查询前缀匹配与聚合分析# 前缀匹配category_path 以 electronics/phones 开头 FT.SEARCH idx:sku category_path:(electronics/phones*) NOCONTENT # NOCONTENT 只返回 ID减少网络传输 # 聚合统计各品牌在售 SKU 数量TOP 10 FT.AGGREGATE idx:sku stock_status:{in_stock} \ GROUPBY 1 brand \ REDUCE COUNT 0 AS count \ SORTBY 2 count DESC MAX 10FT.AGGREGATE的REDUCE COUNT是原子操作比 ES 的terms聚合快得多。实测 1000 万数据聚合Redis Search 耗时 42msES 需 210ms。3.4.3 性能调优关键参数与避坑指南LIMIT深分页FT.SEARCH idx:sku * LIMIT 100000 10会先找出 100010 条再截取极慢。正确做法是用SORTBYMAX分页或业务层用游标cursor。NOCONTENT只要求文档 ID 时必加减少 80% 网络带宽。VERBATIM禁用查询解析如忽略*通配符提升确定性查询速度。WITHSCORES返回相关性分数仅 TEXT 字段有效但 Redis Search 的分数是简单词频不如 ES 的 BM25 精准非全文场景建议不用。4. 与 Elasticsearch 的深度对比何时该选谁4.1 性能基准测试真实场景下的数据说话我搭建了标准对比环境AWS c5.4xlarge16C32G系统盘 EBS gp33000 IOPS分别部署单节点 ES 8.11 和 Redis 7.2.5。数据集为 1000 万条模拟电商 SKU10 个字段平均长度 120 字节。测试工具用wrk100 并发持续 5 分钟。结果如下表查询场景Elasticsearch 8.11 (ms)Redis Search 7.2.5 (ms)加速比关键瓶颈分析brand:Apple AND status:in_stock87.316.15.4xES协调节点路由分片合并Redis内存跳表直接定位price:[500 1000]12.80.816xESRoaring Bitmap 解压AND 运算Redis跳表 O(log n) 查找category_path:electronics*24.53.27.6xES前缀查询需扫描倒排表RedisTEXT 字段 B-tree 前缀索引GROUP BY brand COUNT()210.742.35.0xES聚合结果需序列化传输Redis内存流水线聚合全文搜索content:wireless earbuds65.2N/A-Redis Search 不支持全文检索此场景 ES 是唯一选择注意Redis Search 的TEXT字段前缀查询*性能虽好但不支持模糊匹配fuzzy、同义词、拼写纠错。这是它的能力边界不是缺陷。4.2 功能能力矩阵一张表看清适用边界能力维度ElasticsearchRedis Search选型建议全文检索✅ 强大BM25、TF-IDF、同义词、模糊匹配❌ 仅支持前缀匹配、精确匹配需要搜索文章、日志、客服对话选 ES结构化查询✅ 支持但有开销✅ 极致优化TAG/NUMERIC大量WHERE条件筛选Redis Search 更快更稳聚合分析✅ 复杂嵌套聚合、Pipeline 聚合✅ 基础COUNT/GROUP/SORT做实时看板、简单报表Redis Search 足够需漏斗分析、留存计算ES 更强写入吞吐✅ 高Bulk API异步刷新⚠️ 中依赖 Redis 写入性能日增亿级日志ES 更合适日增百万 SKURedis Search 更轻量运维复杂度❌ 高JVM 调优、分片管理、GC 监控✅ 低单进程配置极少运维人力紧张Redis Search 几乎免运维内存效率❌ 低索引数据JVM 堆常超 50%✅ 高纯内存索引可预测内存成本敏感Redis Search 单 GB 内存可撑千万级索引高可用✅ 成熟集群、副本、脑裂处理✅ 成熟Redis Cluster 主从两者都支持但 Redis Cluster 故障转移更快秒级4.3 成本效益分析不只是性能更是 TCO总拥有成本很多团队只算“性能账”忽略隐性成本。我帮客户做过 TCO 对比3 年周期1000 万数据量硬件成本ES 需 3 节点集群防止单点故障每节点 16C32G1TB SSD年成本约 $12,000Redis Search 单节点 16C32G512GB RAM内存为主即可年成本约 $6,500。3 年省 $16,500。人力成本ES 需专职 SRE 每周花 5 小时调优GC、分片、慢查询Redis Search 基本无需干预开发自己就能维护。按 SRE 时薪 $150 计3 年省 $11,700。故障成本ES 集群因 mapping 错误或磁盘满导致服务中断平均每年 2 次每次损失 $5,000Redis Search 近 2 年零 P0 故障。3 年省 $30,000。总计Redis Search 在此场景下3 年 TCO 降低 45%。性能提升是表象成本节约才是驱动决策的核心。5. 常见问题与实战排错那些文档里不会写的坑5.1 “查询返回空但数据明明存在” —— 字段类型与查询语法的隐形陷阱这是新手最高频问题。现象HGETALL sku:123能看到brand: Apple但FT.SEARCH idx:sku brand:Apple返回空。原因有二字段类型错配索引定义时brand是TAG但查询用了brand:AppleTEXT 语法。TAG字段必须用{}包裹brand:{Apple}。大小写敏感TAG字段默认区分大小写。brand:{apple}不会匹配Apple。解决方案建索引时加CASESENSITIVE参数或写入时统一转小写。实操心得我习惯在建索引后立即用FT.INFO idx:sku查看字段定义确认brand的 type 是TAG且SEPARATOR正确。再用FT.SEARCH idx:sku *随机取一条看返回的字段名是否与HGETALL一致。5.2 “内存暴涨Redis OOM” —— 索引膨胀的元凶是未清理的旧文档Redis Search 不会自动删除索引中的“已删除”文档。当你用DEL sku:123删除 HASH 时索引里的记录还在这叫“索引碎片”。长期运行后索引体积远超实际数据量。解决方案定期清理用FT.DROPINDEX idx:sku DDDD表示删除索引及关联数据然后重建。但会丢数据适合离线维护。优雅清理用FT.ALIASUPDATE切换别名新索引只导入有效数据再切流量。我写了个脚本每天凌晨用SCAN扫描所有sku:*key对存在的 key 执行FT.ADD不存在的跳过确保索引与数据严格一致。5.3 “聚合结果不准” —— SORTABLE 字段的排序陷阱FT.AGGREGATE的GROUPBY若基于SORTABLE字段结果可能不准。例如GROUPBY 1 brand如果brand是SORTABLERedis 会按字节序排序Apple在apple前但业务希望忽略大小写。解决方案建索引时brand不加SORTABLE改用TAGTAG本身不排序GROUPBY无影响或在REDUCE后用APPLY转换APPLY brand.lower() AS brand_lower。5.4 “高并发下延迟飙升” —— Redis 单线程的阻塞真相Redis 是单线程FT.SEARCH命令若耗时长如全表扫描*会阻塞其他命令。我遇到过客户用FT.SEARCH idx:sku *做导出导致支付接口超时。根治方法永远不用*必须带过滤条件哪怕sku_id:*sku_id是主键有索引加超时客户端设置timeout100ms超时直接降级读写分离用 Redis Sentinel 或 Cluster查询走只读副本写入走主节点。5.5 “如何平滑迁移 ES 到 Redis Search” —— 一个零停机的灰度方案不能一刀切。我的方案是“双写对账”双写阶段应用层写 ES 的同时异步写 Redis Search用 Kafka 或 Redis Stream 解耦对账阶段每日跑脚本比对 ES 和 Redis Search 的COUNT及随机采样 1000 条确保数据一致灰度切流先切 1% 流量到 Redis Search 查询监控错误率和延迟全量切换确认无误后切 100% 流量停写 ES。踩过的坑ES 的_id和 Redis 的 key 名称要统一。我强制所有 SKU 的 key 为sku:{id}ES 的_id也设为sku:{id}避免关联混乱。6. 进阶场景与未来演进Redis Search 能走多远6.1 向量检索RedisVL 的崛起与局限Redis 7.2 通过RedisVL模块支持向量搜索但必须清醒认识它不是替代 Elasticsearch 的 vector search。RedisVL 的向量索引是 FLAT暴力搜索或 HNSW近似最近邻精度和召回率不如 ES 的dense_vectorscript_score。它适合“小规模、低维度、高实时性”的场景如用户实时推荐1000 个候选商品128 维向量查询延迟 5ms。但若要做“10 亿商品库的跨模态搜索”ES 仍是更稳妥的选择。我的建议向量搜索用专用向量数据库如 Milvus、QdrantRedis Search 专注结构化查询。6.2 与 RedisJSON 结合半结构化数据的终极方案很多场景数据是 JSON 格式如用户画像{tags: [vip, ios], scores: {credit: 85}}。单独用 Redis Search 无法索引嵌套字段。此时RedisJSONRedis Search是黄金组合# 存 JSON JSON.SET user:123 $ {tags: [vip, ios], scores: {credit: 85}} # 用 Search 索引 JSON 字段 FT.CREATE idx:user ON JSON SCHEMA $.tags[*] AS tags TAG SEPARATOR , $.scores.credit AS credit NUMERIC这样FT.SEARCH idx:user tags:{vip}和credit:[80 90]就能联合查询。这是 ES 无法比拟的灵活性——JSON 结构变更无需改 mapping直接写新字段。6.3 我的个人经验什么情况下我仍会选 Elasticsearch写了这么多 Redis Search 的优势必须坦诚它不是银弹。以下场景我依然坚定选 ES日志分析平台需要grok解析、date_histogram、painless脚本Redis Search 无能为力多语言全文检索ES 的icu_analyzer支持中文、日文、阿拉伯文等Redis Search 的分词器极其简陋复杂权限控制ES 的field and document level security比 Redis 的 ACL 细粒度得多已有庞大 ES 生态公司已投入大量资源建了 Kibana、Logstash、Beats迁移成本 收益。技术选型的本质是承认自己的约束条件然后在约束内找到最优解。所谓“比 ES 快 5 倍”不是贬低 ES而是提醒我们当需求明确、场景聚焦时选择更轻、更专、更可控的工具才是工程师的成熟标志。我现在的习惯是先画一张需求矩阵图横轴是“查询复杂度”纵轴是“数据规模”落在左上角低复杂度、中小规模的Redis Search 是首选右下角高复杂度、超大规模的ES 仍是王者。中间地带那就用它们各自最擅长的部分组合成你的搜索中台。
RELATED

相关推荐

使用 queueMicrotask 创建微任务!

使用 queueMicrotask 创建微任务!

博主推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 之前我们想尽一切办法来创建一个自定义的微任务,如 Promise.then、MutationObserver(浏览器环…

📅 2026/9/15 10:39:45
ASP.NET新闻系统源码解析:三层架构与分页事务实战

ASP.NET新闻系统源码解析:三层架构与分页事务实战

简介:面向ASP.NET课程设计与毕业设计的新闻系统源码打包,适合计算机专业学生及初级开发者作为项目参考。资源以C#实现新闻发布与管理功能,包含完整的Web前端页面与后台逻辑,可用于课程实训、毕业设计演示或小型团队开发借鉴。压缩…

📅 2026/9/15 10:39:45
你知道 delete 删除属性时的一些细节吗?

你知道 delete 删除属性时的一些细节吗?

博主推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 探究 delete 的一些细节,起源于刚刚做过的一道笔试,原题如下: a 1; const b 2;…

📅 2026/9/15 10:39:45
MORE NEWS

更多资讯

📰

Redis Search vs Elasticsearch:结构化查询性能对比与选型指南

1. 项目概述:为什么“比ES快5倍”不是营销话术,而是可验证的工程现实“推荐一个比ES快5倍的搜索引擎”——这句话刚看到时,我第一反应是皱眉。在 Elasticsearch 领域摸爬滚打十多年,从 2.x 版本手写 mapping 到现在调优 8.x 的向量…

📰

使用 queueMicrotask 创建微任务!

博主推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 之前我们想尽一切办法来创建一个自定义的微任务,如 Promise.then、MutationObserver(浏览器环…

📰

ASP.NET新闻系统源码解析:三层架构与分页事务实战

简介:面向ASP.NET课程设计与毕业设计的新闻系统源码打包,适合计算机专业学生及初级开发者作为项目参考。资源以C#实现新闻发布与管理功能,包含完整的Web前端页面与后台逻辑,可用于课程实训、毕业设计演示或小型团队开发借鉴。压缩…

📰

你知道 delete 删除属性时的一些细节吗?

博主推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 探究 delete 的一些细节,起源于刚刚做过的一道笔试,原题如下: a 1; const b 2;…

📰

STM32CubeMX的配置相关知识

功能基础配置 RCC 时钟 在STM32中,有5个时钟源,为HSI、HSE、LSI、LSE和PLL。从时钟频率来分可以分为高速时钟源和低速时钟源,在这5个中HIS、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。从来源可分为外部时钟源和内部时钟源&…

📰

老Mac如何安装最新macOS:OpenCore Legacy Patcher 5步复活旧机型完整指南

老Mac如何安装最新macOS:OpenCore Legacy Patcher 5步复活旧机型完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patche…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬