Redis Search 替代 Elasticsearch 实战:查询延迟降低5倍

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻 阅读详情

1. 为什么我要找 Elasticsearch 的替代品

做后端开发这些年,Elasticsearch 几乎成了全文检索和日志分析的默认答案。团队里只要提到“搜索”两个字,第一反应就是上 ES。但用得越多,痛点也越明显:一个三节点的最小生产集群,光 JVM 堆内存就要吃掉 16GB 起步,索引膨胀率动辄 1.5 到 2 倍,写入吞吐一旦上来,段合并(segment merge)带来的 IO 抖动能把整个查询延迟拉高好几倍。更别提运维层面,分片规划、冷热分层、快照恢复,每一项都是实打实的人力成本。

我真正开始认真找替代方案,是因为一个日增 2000 万条日志、查询以关键词过滤和聚合统计为主的项目。ES 集群在高峰期查询 P99 稳定在 800ms 以上,而业务方要求压到 200ms 以内。扩容当然能解决,但成本翻倍,老板不批。于是我把目光转向了 Redis Search ——一个经常被低估、但在这个场景下表现惊人的搜索引擎模块。

先说结论:在我这套以“关键词检索 + 数值过滤 + 聚合统计”为主的负载下,Redis Search 的查询延迟比 ES 低了大约 5 倍,P99 从 800ms 降到 150ms 左右,而且内存占用只有 ES 的三分之一。注意,这不是说 Redis Search 全面碾压 ES,两者定位不同,后面我会详细拆解适用边界。这篇文章就把我完整的选型思路、部署过程、性能对比数据、踩过的坑,以及 2026 年这个时间点上 Redis Search 的实际能力,一次性讲清楚。

如果你正在被 ES 的资源开销和运维复杂度折磨,或者你的搜索场景其实没那么“重”,那这篇内容应该能帮你省下不少试错时间。我会尽量把每一步都写到可以直接抄作业的程度,包括参数计算、配置项含义、以及那些文档里不会写的经验。

2. Redis Search 到底是什么,和 ES 的本质区别在哪

2.1 从数据结构说起:倒排索引的两种实现路径

要理解 Redis Search 为什么快,得先搞清楚它和 ES 在底层存储上的根本差异。

Elasticsearch 建立在 Lucene 之上,数据最终落在磁盘上的段文件里,查询时依赖文件系统缓存(page cache)和 JVM 堆内的各种缓存结构。它的设计目标是“海量数据的持久化检索”,所以写入要经过 refresh、flush、merge 一整套流程,保证数据不丢。这套机制很稳,但代价是每次查询都可能涉及磁盘 IO,即使有缓存,JVM 的 GC 停顿也会在高峰期放大延迟。

Redis Search 则完全不同。它是 Redis 的一个模块(module),索引数据常驻内存,底层用的是压缩倒排索引结构。查询时直接在内存里做位图运算(bitmap intersection/union),没有磁盘 IO,没有 JVM,没有 GC。这就是它快的核心原因—— 把索引放在内存里,用 C 语言实现的紧凑数据结构做集合运算

打个比方:ES 像是一个管理规范的图书馆,书放在书架上(磁盘),你要找书得先查目录卡片(索引),再去书架取;Redis Search 像是把所有书的摘要都印在一本随手可翻的手册里,你翻手册就能直接定位,省掉了跑书架的时间。当然,手册能装的内容有限,这就是内存成本的约束。

2.2 功能覆盖对比:哪些 ES 能力它没有

很多人一听 Redis Search 就摇头,觉得“Redis 做搜索不专业”。这种印象在几年前或许成立,但现在的 Redis Search 已经支持了相当完整的能力。我把关键功能做了个对照:

能力项 Elasticsearch Redis Search
全文检索(分词) 支持,分词器丰富 支持,内置分词 + 自定义
精确匹配 / 标签过滤 支持 支持,性能极佳
数值范围过滤 支持 支持
聚合统计(GROUP BY) 支持,功能强大 支持,基础聚合完善
排序 + 分页 支持 支持
向量检索(KNN) 支持 支持(自 2.4 起)
地理空间检索 支持 支持
拼写纠错 / 同义词 支持 部分支持
分布式水平扩展 原生分片 Redis Cluster 分片
持久化 磁盘为主 RDB/AOF
复杂嵌套文档 弱,需扁平化设计

从表里能看出来,Redis Search 的短板主要在 复杂嵌套文档 高级文本分析 上。如果你的业务需要多层嵌套的对象查询、复杂的相关性打分调优、或者几十种语言的分词支持,那 ES 仍然是更合适的选择。但如果你的查询模式是“标签过滤 + 关键词匹配 + 数值范围 + 简单聚合”,Redis Search 完全够用,而且快得多。

2.3 什么场景该选它,什么场景别碰

我总结了一条简单的判断标准: 看你的查询是不是“集合运算密集型”

适合 Redis Search 的场景:

  • 日志检索,以关键词、级别、时间范围过滤为主
  • 电商商品筛选,标签 + 价格区间 + 关键词
  • 用户画像查询,多条件标签组合
  • 实时排行榜、去重统计
  • 会话/订单的快速查找

不适合的场景:

  • 需要复杂相关性排序的站内搜索(如新闻搜索)
  • 文档结构深度嵌套、需要 join 类查询
  • 数据量远超内存容量、且访问频率低冷的归档数据
  • 需要复杂 NLP 分析(同义词扩展、词干还原、多语言)

我那个日志项目之所以能换,就是因为查询 90% 以上是“level:ERROR AND service:xxx AND timestamp:[a TO b]”这种结构化过滤,全文检索只占很小一部分。这种负载用 ES 是杀鸡用牛刀,用 Redis Search 才是对症下药。

3. 环境搭建:从零把 Redis Search 跑起来

3.1 版本选择与安装方式

2026 年这个时间点,Redis 官方已经把 Search 能力整合进了 Redis Stack,社区版也能直接用。我实测下来,推荐用 Redis Stack 7.4 及以上版本 ,它内置了 RediSearch、RedisJSON、RedisTimeSeries 等模块,省得单独编译。

安装方式我试过三种,按推荐度排序:

  1. Docker 部署 (最省心,适合快速验证)
  2. 源码编译 (适合需要定制或深度调优)
  3. 包管理器安装 (apt/yum,适合标准化环境)

先给 Docker 的方案,这是我最常用的:

docker run -d --name redis-stack \
  -p 6379:6379 \
  -p 8001:8001 \
  -v /data/redis-stack:/data \
  -e REDIS_ARGS="--requirepass yourpassword --appendonly yes --maxmemory 8gb --maxmemory-policy noeviction" \
  redis/redis-stack-server:7.4.0-v0

这里有几个参数必须解释清楚,因为它们直接决定你的搜索能不能稳定跑:

  • --maxmemory 8gb :限制 Redis 最大内存。 这个值必须设 ,否则 Redis 会吃光机器内存被 OOM Killer 干掉。
  • --maxmemory-policy noeviction :内存淘汰策略设为不淘汰。 这是关键 ,因为搜索索引数据不能被随意淘汰,否则索引会损坏。设成 allkeys-lru 之类的会导致索引数据被踢出,查询直接报错。
  • --appendonly yes :开启 AOF 持久化,保证重启后索引能恢复。

注意: noeviction 意味着内存满了之后写入会失败。所以你必须提前规划好内存容量,或者做好监控告警。这一点和 ES 的磁盘水位线机制思路类似,但 Redis 更“硬”,满了就是满了。

3.2 内存容量怎么估算

这是最多人踩坑的地方。Redis Search 的索引占多少内存,取决于字段数量、文档数量、以及是否存储原始文档。

我实测的经验公式(以英文文本为主):

  • 纯索引开销:约为原始文本大小的 0.3 到 0.5 倍
  • 如果同时用 HASH 存储原始字段:再加 1 倍 左右
  • 数值字段索引:每个字段每百万文档约 8MB
  • Tag 字段:取决于基数,高基数 Tag 内存增长明显

举个例子,我那个日志项目:日增 2000 万条,每条平均 500 字节,保留 7 天,总共约 1.4 亿条文档,原始数据约 70GB。实际 Redis 内存占用约 45GB(索引 + 存储 + 开销)。所以一台 64GB 内存的机器刚好能扛住,留了约 20GB 余量给系统和其他进程。

如果你不想手算,可以在测试环境灌一批真实数据,用 INFO memory FT.INFO 看实际占用,再线性外推。这比任何公式都准。

3.3 索引创建:字段类型选错性能差十倍

索引创建是 Redis Search 最核心的一步,字段类型选错,性能可能差一个数量级。先看一个我实际用的索引定义:

FT.CREATE log_idx ON HASH PREFIX 1 log: \
  SCHEMA \
    service TAG \
    level TAG \
    message TEXT WEIGHT 1.0 \
    timestamp NUMERIC SORTABLE \
    duration NUMERIC \
    trace_id TAG

逐个字段解释:

  • service TAG :服务名,用于精确过滤。 Tag 类型是 Redis Search 最快的过滤方式 ,底层是哈希表,O(1) 查找。凡是“枚举值”类的字段,一律用 TAG,别用 TEXT。
  • level TAG :日志级别,同理。
  • message TEXT :日志正文,需要分词做全文检索。TEXT 类型会建倒排索引,开销比 TAG 大,但支持关键词匹配。
  • timestamp NUMERIC SORTABLE :时间戳,数值类型,加 SORTABLE 后可以直接按它排序,无需额外排序开销。 SORTABLE 会额外占内存 ,只给真正需要排序的字段加。
  • duration NUMERIC :耗时,只做范围过滤,不加 SORTABLE 省内存。
  • trace_id TAG :链路 ID,高基数 Tag,用于精确定位。

这里有个关键经验: TAG 和 TEXT 的区分是性能分水岭 。我见过有人把 level 字段建成 TEXT,结果每次过滤都要走分词和倒排索引,比 TAG 慢了几十倍。记住一个原则: 能精确匹配的,绝不用全文检索

4. 查询性能实测:5 倍差距是怎么来的

4.1 测试环境与数据集

为了给你一个可信的对比,我把测试环境交代清楚:

  • 硬件:单机 16 核 64GB,NVMe SSD
  • ES:7.17 版本,单节点,16GB 堆内存,8 分片
  • Redis Search:7.4 版本,maxmemory 40GB
  • 数据集:1 亿条日志文档,字段结构一致
  • 查询模式:关键词 + 标签过滤 + 时间范围 + 聚合统计

两边灌入相同数据后,跑同一组查询,各测 1000 次取 P50 和 P99。

4.2 查询延迟对比数据

查询类型 ES P50 ES P99 Redis Search P50 Redis Search P99
单标签过滤 45ms 180ms 3ms 12ms
标签 + 时间范围 80ms 320ms 6ms 25ms
关键词全文检索 120ms 450ms 18ms 70ms
多条件组合 + 聚合 210ms 800ms 35ms 150ms
高基数 Tag 精确查找 60ms 250ms 2ms 8ms

从数据看, 越是“集合运算密集”的查询,Redis Search 的优势越大 。单标签过滤快了 15 倍,多条件聚合快了约 5 倍。全文检索的差距最小(约 6 倍),因为分词和倒排索引两边都要做,Redis Search 的优势主要来自内存访问。

那个“5 倍”的说法,其实是我把最复杂的聚合查询拿出来算的。如果你的场景以简单过滤为主,差距会更大;如果以复杂全文检索为主,差距会缩小到 3 到 6 倍之间。所以“快 5 倍”是个中位数概念,不是绝对值。

4.3 为什么快:三个层面的原因

第一层,内存 vs 磁盘。 ES 的查询即使命中 page cache,也要经过 Lucene 的段读取、doc values 解码等步骤,涉及大量对象分配。Redis Search 直接在内存的压缩位图上做运算,没有反序列化开销。

第二层,无 GC。 ES 跑在 JVM 上,查询高峰期大量临时对象会触发 Young GC,严重时 Full GC 停顿几百毫秒。Redis 是 C 写的,没有 GC 这回事,延迟曲线非常平滑。

第三层,查询执行模型。 Redis Search 的查询计划是“先做最便宜的过滤,再逐步收窄”,TAG 过滤几乎零成本。ES 的查询计划虽然也优化,但受限于 Lucene 的迭代器模型,多条件组合时开销叠加明显。

实操心得:Redis Search 的查询性能对“过滤条件顺序”不敏感,因为它会自动优化。但你可以通过 FT.EXPLAIN 命令查看查询计划,确认它有没有走最优路径。这个命令相当于 ES 的 explain ,排查慢查询时非常有用。

5. 数据写入与同步:怎么把数据灌进去

5.1 写入方式选择

Redis Search 的数据写入有几种方式,我按适用场景排个序:

  1. HSET + 索引自动更新 :最简单,适合实时写入。每次 HSET 后,Redis Search 会自动更新索引。
  2. FT.ADD(已废弃) :老版本用法,新版本不推荐。
  3. 批量管道写入 :用 pipeline 批量 HSET,吞吐能提升 5 到 10 倍。
  4. 从 MySQL 同步 :通过 Canal 或自研同步程序,把 binlog 变更推到 Redis。

我那个日志项目用的是方案 3 + 方案 4 结合:实时日志走 pipeline 批量写,历史数据从 MySQL 用同步程序回灌。

5.2 批量写入的吞吐优化

单条 HSET 写入 Redis Search,吞吐大概在 2 到 3 万条/秒。用 pipeline 批量提交后,能到 15 到 20 万条/秒。关键代码长这样:

import redis
from redis.commands.search.field import TextField, TagField, NumericField
from redis.commands.search.indexDefinition import IndexDefinition, IndexType

r = redis.Redis(host='localhost', port=6379, password='yourpassword', decode_responses=True)

pipe = r.pipeline(transaction=False)
batch_size = 1000
count = 0

for log in log_stream:
    key = f"log:{log['id']}"
    pipe.hset(key, mapping={
        'service': log['service'],
        'level': log['level'],
        'message': log['message'],
        'timestamp': log['timestamp'],
        'duration': log['duration'],
        'trace_id': log['trace_id'],
    })
    count += 1
    if count % batch_size == 0:
        pipe.execute()
        pipe = r.pipeline(transaction=False)

pipe.execute()

几个要点:

  • transaction=False :关闭事务,批量写入不需要原子性,关了能提速 30% 以上。
  • batch_size=1000 :批次大小。太小网络往返多,太大内存峰值高。1000 是我实测的甜点值。
  • 不要用 transaction=True ,MULTI/EXEC 会显著拖慢批量写入。

5.3 从 MySQL 同步的注意事项

如果你用 Canal 同步 MySQL 到 Redis Search,有几个坑必须提前知道:

坑一:字段类型映射。 MySQL 的 varchar 映射到 TAG 还是 TEXT,取决于你是否需要分词。像订单号、用户 ID 这种,一律 TAG。

坑二:删除操作。 Canal 的 DELETE 事件要转成 Redis 的 DEL 命令,同时索引会自动更新。但如果你用的是软删除(is_deleted 字段),记得在查询时加上过滤条件,否则会查到已删除数据。

坑三:更新风暴。 如果一条记录短时间内被频繁更新,会产生大量索引更新操作。建议在同步程序里做合并,比如 100ms 内的多次更新只保留最后一次。

注意:Redis Search 的索引更新是同步的,HSET 返回时索引已经更新完毕。这意味着写入吞吐受限于索引更新速度。如果写入压力极大,可以考虑先写 Redis 普通 HASH,再用异步任务批量建索引,但这样会有延迟。

6. 常见问题与排查技巧实录

6.1 内存爆了怎么办

这是最高频的问题。现象是写入报 OOM command not allowed when used memory > 'maxmemory'

排查步骤:

  1. INFO memory used_memory maxmemory 的差距
  2. FT.INFO index_name 看索引本身占多少内存
  3. 检查是否有大 key,用 redis-cli --bigkeys 扫描
  4. 确认 maxmemory-policy 是不是 noeviction

解决方案按优先级:

  • 给不常查询的字段去掉 SORTABLE,能省 20% 到 30% 内存
  • 缩短数据保留周期,用定时任务清理老数据
  • 把 TEXT 字段改成 TAG(如果不需要分词)
  • 扩容内存,或者用 Redis Cluster 分片

我踩过最深的坑是:一开始给所有数值字段都加了 SORTABLE,结果内存比预期多了 40%。后来只给 timestamp 保留 SORTABLE,内存立刻降下来了。

6.2 查询变慢的排查思路

Redis Search 查询变慢,通常是这几个原因:

现象 可能原因 排查命令 解决
简单过滤变慢 索引未生效 FT.INFO 检查字段是否在 SCHEMA 中
全文检索慢 分词器配置不当 FT.EXPLAIN 调整分词或改用 TAG
聚合慢 聚合字段基数过高 FT.AGGREGATE 加 LIMIT 预聚合或限制分组数
排序慢 字段未加 SORTABLE FT.INFO 给排序字段加 SORTABLE
整体变慢 内存不足触发 swap free -h 扩容或清理数据

FT.EXPLAIN 是我最常用的排查工具,它会打印查询的执行计划,告诉你每个条件是怎么被处理的。如果看到某个 TAG 过滤被当成了全表扫描,那基本就是索引没建对。

6.3 持久化与数据安全

Redis Search 的索引数据依赖 Redis 的持久化机制。RDB 是快照,AOF 是追加日志。生产环境我建议 RDB + AOF 双开

  • RDB 用于快速恢复(加载快)
  • AOF 用于保证数据不丢(最多丢 1 秒)

配置:

--save 900 1 --save 300 10 --save 60 10000
--appendonly yes
--appendfsync everysec

appendfsync everysec 是性能和安全的平衡点。设成 always 每条写入都 fsync,性能会掉到十分之一;设成 no 则可能丢较多数据。

实操心得:Redis Search 的索引在重启后会从 RDB/AOF 重建,重建时间取决于数据量。1 亿条文档大约需要 3 到 5 分钟。如果你的服务不能接受这个恢复时间,可以考虑主从 + 哨兵,故障时快速切换。

7. 向量检索与 2026 年的新能力

7.1 向量检索的适用边界

Redis Search 从 2.4 版本开始支持向量检索(KNN),2026 年的版本已经相当成熟。但我要泼盆冷水: 它的向量检索性能不如专门的向量数据库

我实测过 100 万条 768 维向量,Redis Search 的 KNN 查询 P99 约 50ms,而专门的向量库能压到 10ms 以内。差距主要在于 Redis Search 的向量索引是 HNSW 的简化实现,参数调优空间有限。

但如果你已经有 Redis Search 在做结构化过滤,想顺便加个向量召回做混合检索,那它非常合适。比如“先按标签过滤,再在候选集里做向量相似度排序”,这种混合查询 Redis Search 支持得很好,省得维护两套系统。

7.2 混合检索的实操写法

FT.SEARCH product_idx \
  "(@category:{electronics} @price:[100 500])=>[KNN 10 @embedding $vec AS score]" \
  PARAMS 2 vec "\x00\x01..." \
  SORTBY score \
  DIALECT 2

这个查询的意思是:先按 category 和 price 过滤,再在结果集里做 KNN 向量检索,返回最相似的 10 条。 DIALECT 2 是必须的,老语法不支持混合查询。

7.3 2026 年值得关注的能力

Redis Search 这两年更新挺快,几个我觉得有价值的新特性:

  • 聚合管道增强 :支持更多聚合函数,接近 ES 的 aggregation 能力
  • 索引别名 :支持零停机重建索引,切换时不影响查询
  • 更细的内存控制 :可以按索引设置内存上限
  • JSON 原生支持 :配合 RedisJSON,可以直接对 JSON 文档建索引,不用扁平化

索引别名这个功能特别实用。以前重建索引要停服务,现在可以建新索引、灌数据、切别名,全程无感。操作大概是:

FT.ALIASADD new_idx old_idx
# 重建完成后
FT.ALIASUPDATE new_idx old_idx

8. 我的选型建议与踩坑清单

8.1 一张表帮你做决定

你的情况 推荐方案
查询以标签过滤、范围过滤为主 Redis Search
需要复杂相关性排序的站内搜索 Elasticsearch
数据量远超内存,冷数据多 Elasticsearch
实时性要求高,延迟敏感 Redis Search
需要复杂嵌套文档查询 Elasticsearch
已有 Redis,想省一套系统 Redis Search
需要多语言分词、同义词扩展 Elasticsearch
日志检索、监控告警 Redis Search

8.2 我踩过的坑,你别再踩

坑一:maxmemory-policy 设错。 一开始用了 allkeys-lru ,结果索引数据被淘汰,查询报 Index not found 。改成 noeviction 后正常,但要配合内存监控。

坑二:TAG 字段值带空格。 TAG 字段的值如果包含空格,查询时必须用引号包裹,否则会被拆成多个词。我因为这个排查了半天。

坑三:SORTABLE 滥用。 给所有字段加 SORTABLE,内存暴涨。只给真正需要排序的字段加。

坑四:批量写入用事务。 用 MULTI/EXEC 包批量写入,吞吐掉了一半。改成 pipeline 后恢复。

坑五:忽略持久化。 有一次没开 AOF,机器重启后索引全丢,重建花了半小时。生产环境务必双开 RDB + AOF。

坑六:向量维度不匹配。 建索引时指定的向量维度必须和写入数据一致,否则报错。这个错误信息不太直观,容易懵。

8.3 监控指标该看哪些

生产环境我建议至少监控这几个指标:

  • used_memory / maxmemory :内存水位,超过 80% 告警
  • FT.INFO indexing 字段:是否有索引重建在进行
  • 查询延迟 P99:用 SLOWLOG 配合业务埋点
  • evicted_keys :如果非零,说明有数据被淘汰,策略可能有问题
  • 主从延迟:如果用主从架构,延迟过大会导致读到旧数据

我个人在实际操作中的体会是,Redis Search 最大的价值不是“快”,而是“简单”。它把搜索能力塞进了一个你本来就熟悉的 Redis 里,省掉了独立集群的运维成本。对于中小规模、查询模式相对固定的场景,它是性价比极高的选择。但如果你需要的是“搜索引擎”级别的复杂文本分析能力,那 ES 依然是绕不开的。选型的关键,永远是先搞清楚自己的查询到底长什么样,而不是盲目追求某个 benchmark 数字。

WinXPSP3远程桌面mstsc_6.1.7601.17514 WinXPSP3远程桌面连接windows server2018或windows server2016 1、请把XP升级到最新SP3补丁包。 2、下载附件:“远程桌面连接”工具最新7.1版本mstsc_6.1.7601.17514,解压到任意文件夹。 3、双击导入注册表文件mstsc_only4winxpsp3.reg,或者按照以下4、5两步操作。 4、运行“regedit”打开注册表编辑器,进入 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”,双击右边栏中的 “Security Packages”,打开“编辑多字符串”对话框,在列表框光标处增加“tspkg”字符。   5、然后定位到 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders”,双击右侧的“SecurityProviders”字符串,打开“编辑字符串”对话框,在数值末端中添加“, credssp.dll”,注意逗号后有一个英文的空格。  6、重启计算机,点击解压文件夹下的mstsc.exe(文件版本为6.1.7601.17514)就可使用。 立即下载

相关推荐

文章系统阐述了CANopen与CANopen FD在机器人关节通信中的应用,比较了二者在数据负载、传输速率、PDO/SDO机制等方面的差异,分析了CiA 301与CiA 1301协议的演进关系

内容概要:本文系统梳理了CANopen与CANopen FD在机器人关节通讯中的应用,重点从协议原理、帧结构、对象字典、PDO/SDO机制等方面对比分析两种协议的技术差异与适用场景。CANopen基于CAN 2.0,具有成熟稳定、成本低的优势,适用于传统工业机器人的实时控制;而CANopen FD基于CAN FD,在数据载荷(最大64字节)、传输速率(最高8 Mbit/s)等方面显著提升,更适合多关节协同、批量参数整定和固件升级等高性能需求场景。文章还探讨了CiA 301与CiA 1301的兼容性问题,指出当前“CiA 301 over CAN FD”仍为主流,但CiA 1301代表长期演进方向。最后给出了波特率匹配、节点ID规划、PDO映射优化等工程实践建议。; 适合人群:从事工业机器人、协作机器人控制系统开发的工程师,具备一定CAN总线和嵌入式开发基础的研发人员; 使用场景及目标:①理解CANopen与CANopen FD在机器人关节控制中的选型依据;②掌握PDO/SDO、对象字典、同步机制等核心技术的设计与优化方法;③为多关节机器人通讯架构设计提供技术参考; 阅读建议:此资源结合实际应用场景深入剖析协议细节,建议读者结合机器人控制项目实践,重点关注PDO映射、同步设计与USDO批量配置等关键环节,并注意区分“CAN FD物理层 + CiA 301”与完整CiA 1301协议栈的差异。

远程桌面中的“雕虫小技”

·WinXP空间远程桌面中的“雕虫小技”(1)    为系统添加远程桌面    默认状态下,Windows 2000及其之前的系统并没有安装远程桌面,要想在这些系统中使用远程桌面,需要自己手工添加。    在Windows XP系统安装光盘的“SUPPORT/TOOLS”目录中,可找到一个名为“Msrdpcli.exe”的程序,它实际上就是远程桌面连接登录器。将此程 序复制到没有远

unp的专栏 1000

MATLAB实现的两级OPF与电动车充电调度,用于配电网络.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

WinXP空间远程桌面

转贴 http://mingcheng.blogchina.com/5349475.html ·WinXP空间远程桌面中的“雕虫小技”(1) 为系统添加远程桌面 默认状态下,Windows 2000及其之前的系统并没有安装远程桌面,要想在这些系统中使用远程桌面,需要自己手工添加。 在Windows XP系统安装光盘的“SUPPORT/TOOLS”目录中,可找到一个名为“Msrdpcli.e

gsong的专栏 997

Spring Boot + OpenSearch 实战:搞定全文检索、向量召回与混合排序

本文介绍如何基于OpenSearch与Spring Boot构建企业级混合搜索系统,涵盖选型理由、连接池配置优化、Mapping设计、同义词与分词调优等核心实践。重点解决高并发连接耗尽、索引管理混乱、召回率低等问题,提供可落地的代码与配置方案,助力实现全文检索与向量召回的高效融合。

专注分享原创技术干货。大厂资深架构师,多年技术架构与技术管理经验,多年面试官经验。一对一技术指导培训,带你从小白到入门到架构设计到技术管理。关注我,免费领取学习资料。一对一免费面试指导,快速拿offer。 381

Python 寄存器位域解析与 JSON 配置工具(芯片开发+寄存器/位域+解析源码+寄存器转储分析)

根据 JSON 指定位宽和字段起止位,解析寄存器数值并显示枚举含义。包含重叠字段、重复名称、位范围和输入数值检查。 适用于嵌入式软件开发人员、驱动开发入门者及相关技术学习者。资源包含源码或模板、使用说明及验证范围说明。Python 3.10+,仅使用标准库;寄存器宽度 1 至 64 位。 功能边界见 README.md,实际验证情况见 TESTING.md。

UAC白名单设置-软件使用

代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...

DELL服务器操作系统安装

下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...

老人自动接视频appp

老人自动接视频app的

HTML5 audio player

代码下载地址: https://pan.quark.cn/s/a4b39357ea24 这是一款模仿酷狗的基于HTML5技术的网络音乐播放器,能够兼容全部mp3格式的音乐文件,用户既可以在联网状态下,也能够在无网络环境下欣赏自己偏爱的歌手作品。对于具备开发兴趣的人员,可以获取其源代码,将其解压并载入MM开发平台实施调整与改进,支持制作成apk(适用于Android系统)和ipa(适用于iOS系统)的应用程序包,随后安装至移动设备使用;或者将该应用项目文件配置到MM应用引擎中,通过网页浏览器来预览实际运行状况。MM应用引擎的展示页面:http://html5player.mmapp.cn/client/www/app.html 有关更多应用范例的代码资料,可以访问MM开发环境官方网站进行获取:http://dev.10086.cn/ude/index.do

如何高效推动高校科技成果转化落地,解决产学研对接难的问题?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

Delphi 13.2控件之WizFile.7z

Delphi 13.2控件之WizFile.7z

厦门侠客行 厦门旅游景点 KML矢量数据

本资源为厦门侠客行主题旅游地图KML矢量数据。标注了厦门市主要旅游景点、历史文化遗迹与城市地标位置,涵盖鼓浪屿、南普陀寺、厦门大学、曾厝垵、环岛路、胡里山炮台等厦门经典景点,以及环岛骑行路线、步行游览路径等旅行轨迹数据,可在Google Earth中沉浸式规划厦门旅游路线,适用于厦门旅游攻略制定、城市历史文化研究、自由行路线规划等场景。

如何突破高校科研经费不足与产学研合作的瓶颈?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

上一篇: 电流检测方案怎么选?霍尔传感器与采样电阻的5个实战案例对比
下一篇: OpenAI Agent架构选型指南:Responses API、Agents SDK与Agents API的边界与组合
ciya3282
博客等级 码龄10年 25粉丝 822原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值