新闻详情

新闻详情

首页 / 资讯中心 / 详情

Redis 如何成为 AI 应用标配:五大场景与实战经验

发布时间:2026/10/1 9:17:02来源:尧图网络
Redis 如何成为 AI 应用标配:五大场景与实战经验
标题里的“Redis 已正式接入 AI ”第一次看到时我第一反应是Redis官方是不是发布了什么神秘的AI插件。仔细翻了官网、GitHub和各家技术社区之后我理解这句话真正想表达的是Redis生态已经在全面拥抱AI场景——从大模型会话缓存、向量检索、RAG落地到智能体状态管理、分布式锁与限流控制Redis正在成为AI应用标配的基础设施。这篇文章就是我从一个实际动手做AI后端集成的人的角度把“Redis接入AI”这件事拆开揉碎为什么大模型应用绕不开Redis、各平台怎么安装配置、5个真正用得上的核心场景、缓存治理与序列化的经验以及我踩过的坑和排查思路。无论你是刚开始接触Redis的新手还是已经在跑大模型服务的后端工程师这篇内容都应该能帮你省下不少弯路。1. 为什么 Redis 在 AI 时代反而更吃香1.1 AI 应用的三座大山先说个扎心的现实现在做AI应用最头疼的不是模型本身效果不够好而是三个工程问题。第一是延迟。大模型推理再快一次请求也要几百毫秒到几秒用户等得起一次等不起十次。同一个问题反复问、同一份资料反复解读如果每次都跑到模型那里重新生成体验基本没法看。第二是成本。按Token计费的大模型接口是赤裸裸的“烧钱机器”。我见过一个内部问答机器人因为没做任何缓存一个月光调用费就花了六位数。缓存不是优化手段是生存手段。第三是状态混乱。AI应用天生是有状态的多轮对话要记住上文RAG流程里要保存检索出来的片段Agent要维护任务执行进度。传统的关系型数据库写这种高频、短周期、结构灵活的临时状态既慢又别扭而单纯放内存里服务一重启全没了。这三座大山叠在一起恰好就是Redis最擅长的领域内存级的读写速度、支持过期时间、丰富的数据结构、原生集群与持久化方案。1.2 Redis 的四个新角色在传统Web项目里Redis的定位通常是“缓存中间件”。接入了AI之后它的角色明显被放大了会话存储层用STRING TTL或HASH保存对话上下文天然支持多用户隔离和过期清理。要做分布式部署还能用同一个Redis实例集中管理所有节点的会话。向量检索库官方模块RediSearch支持向量索引和KNN查询配合redis-py里的RedisVectorStore可以直接做语义检索。中小规模的数据集完全不需要单独引入向量数据库Redis一个就够。并发控制层AI应用经常会有“同一份数据同时被多个Agent处理”的场景分布式锁就是标准解法。Redis的SET NX EX命令是业界最成熟的分布式锁实现基础。流量闸门大模型接口调用必须在代码里做限流否则一个小流量突刺就可能把单日预算烧光。Redis的计数器结构做令牌桶、滑动窗口都非常顺手。理解了Redis在AI架构里的位置后面的安装、设计和排查才有的放矢。2. 开工准备把 Redis 装好、连上、跑起来2.1 各平台安装姿势聊了那么多理论先动手把环境搭起来。这里把主流平台的安装方式都列一遍你根据自己手头的系统选择。macOS 安装 Redis最简单的是走 Homebrewbrew install redis brew services start redis装完用redis-cli ping验证如果能返回PONG说明服务已经正常启动。macOS下的配置文件默认在/usr/local/etc/redis.confApple Silicon 通常为/opt/homebrew/etc/redis.conf需要开远程连接、改密码、调内存上限都在这里改。Windows 安装 Redis这里有个常见误区Redis官方其实不提供原生Windows版本。目前用的比较多的方案有三个我实测下来都不错使用 Redis 官方发布的 Windows 移植版微软存档版本功能较旧使用 Docker Desktop 跑redis:7.x镜像这也是我推荐的方式使用 Memurai一个兼容 Redis 协议的 Windows 原生服务适合不想碰 Docker 的团队。我个人在Windows开发机上用的是第二种docker run -d --name redis-server \ -p 6379:6379 \ -v ./redis-data:/data \ redis:7-alpineLinux 服务器一般用包管理器或官方源码编译apt-get install redis-server systemctl enable redis-server systemctl start redis-serverDocker 主从部署也要提一嘴。单机Redis挂了AI服务的会话数据会瞬间丢失生产环境至少要做到主从复制。配置主从其实很简单主节点正常启动从节点的配置文件里加上一行replicaof master-ip 6379或者运行时执行SLAVEOF master-ip 6379即可。2.2 连接工具与可视化客户端Redis装好之后需要一个顺手的连接工具。命令行redis-cli只适合快速验证日常调试数据、看Key、查内存占用建议配一个可视化客户端。我用过几个主流工具列个直观对比工具跨平台适合用途收费情况Redis Desktop ManagerRDMWindows / macOS / Linux老牌工具功能全面新版性能提升明显收费Another Redis Desktop ManagerWindows / macOS / Linux开源免费日常连接、查看、管理足够免费RedisInsightWindows / macOS / LinuxRedis 官方出品内置分析工具支持可视化指标免费命令行 redis-cli全平台写脚本、批量操作、排查问题免费如果是个人学习直接用redis-cli就够了如果每天要跟Redis大量数据打交道我更推荐RedisInsight官方工具对不同数据类型的可视化做得最细致。连接字符串的格式一般是redis://:密码主机:端口不要让密码出现在URL里。2.3 数据类型速览Redis的5种基础数据类型在AI场景里基本都是用得上的这里快速过一遍STRING存JSON序列化后的上下文、Prompt模板、模型返回结果。比如一个多轮会话的最近状态直接SET conversation:用户ID {messages:[...]} EX 3600。LIST按时间顺序存对话消息LPUSH新消息、LTRIM保留最近N条实现“滑动窗口”式的上下文管理非常顺手。HASH存会话的结构化属性比如用户ID对应的模型参数、Token用量统计、会话创建时间多个字段可以单独更新不用整串覆盖。SET做去重和标签管理比如记录某份文档已经被哪些Agent处理过SADD/SISMEMBER两次操作就搞定。ZSET按分数排序的场景比如缓存命中的热度排行、需要按时间清理的Key管理分数可以用时间戳或计数值。加上 5.0 后的STREAM消息队列和模块提供的JSON、Search类型AI应用几乎所有的中间状态都能找到合适的落点。选错数据结构的典型例子是有人用玄学一样的SET去拼接消息列表每次读取都要反序列化再全量覆盖性能差还容易出错。数据类型的取舍本质上是“你要怎么读”决定的。3. 核心实战5 个真正用得上的 AI 接入场景3.1 会话状态让大模型记住上下文大模型接口本身是没有记忆的多轮对话的上下文全靠应用层去维护。在传统实现里很多人用一个本地数组存对话记录当时没问题一旦服务多开几个副本就乱了用户连上A节点聊了两句下一个请求被负载均衡转发到B节点B节点根本不知道这两句是什么。正确的做法是把上下文放到Redis里所有服务节点读写同一个地方。我用的方案是HASH 过期时间结构大致如下HSET chat:会话ID messages [{role:user,content:...},...] model gpt-4o tokens 1024 EXPIRE chat:会话ID 7200读写时用HGETALL取出整个会话传给模型做上下文每次用户发消息后用HSET更新消息列表再刷新EXPIRE时间。这里有一个非常关键的细节上下文不能无限增长。模型有上下文窗口上限而且消息越长费用越高、首字延迟越大。我建议在写入Redis之前就做截断固定只保留最近10到20轮消息或者按总Token数估算后裁剪。宁可“记忆短一点”也别让请求超限报错。另一个经验是如果高峰期会话量特别大别让主Redis替所有业务扛读写可以单独分一个逻辑库select 1或者单独实例给会话存储用避免互相拖累。3.2 响应缓存省钱又提速这是我认为“投入产出比最高”的一个优化几乎没有之一。大模型App的典型流量里有相当一部分是重复请求——同样的FAQ问题、同一份报告摘要、同一个商品介绍不同用户问的内容高度相似。每次重复请求都去调模型既浪费钱又拉高延迟。缓存的思路很简单把“输入”和“输出”都变成可比的Key。具体操作如下# 伪代码示意 prompt_key rag_cache:%s % hashlib.md5(prompt.encode()).hexdigest() cache_result redis.get(prompt_key) if cache_result: return json.loads(cache_result) # 未命中 - 调用模型 result call_llm(prompt) redis.set(prompt_key, json.dumps(result), ex3600) return resultKey不要直接拼原始Prompt因为一行空格的差别就会让整个缓存失效。用哈希之后相同语义但不同表述的请求依然无法命中——这个问题需要引入“语义缓存”解决做法是先用向量模型把Prompt转成embedding再在Redis里面做相似度检索超过阈值的直接返回缓存结果。这个方案效果好但复杂度也高建议前期先做完全匹配缓存等数据量起来再升级。给缓存设置过期时间时需要看业务容忍度。像天气、股票这些实时性要求高的TTL设60秒而FAQ、产品介绍这类长期稳定的内容TTL直接设为24小时或更长。实测中纯字符串缓存配合SET EX单Key读写都在亚毫秒级整体接口延迟能从3秒降到30毫秒。还有一个小技巧把模型版本、Temperature等参数一起拼进缓存Key。否则你调了一次低温度的稳定回答下次把参数改成高温度拿到的还是旧结果这个坑特别隐蔽。3.3 向量检索低成本搭建 RAGRAG检索增强生成是目前把大模型接入企业知识库的主流方式核心流程是把文档拆段、向量化、存入向量库用户提问时先做语义检索找出最相关的片段再拼进Prompt让模型回答。常规做法是单独引入向量数据库比如 Milvus、Qdrant、Pinecone。但如果你的文档量在百万级别以内完全可以把向量直接存进Redis省掉一个中间件。Redis使用RediSearch模块支持向量检索。以redis-py官方库为例初始化非常直接from redis import Redis from redis.commands.search.field import VectorField, TextField from redis.commands.search.query import Query r Redis(hostlocalhost, port6379) # 创建索引doc_embeddings 是向量字段content 是原文 schema ( TextField(content), VectorField(embedding, FLAT, {TYPE: FLOAT32, DIM: 384, DISTANCE_METRIC: COSINE}) ) r.ft(doc_idx).create_index(schema)写入文档时把文本和向量一起存r.hset(fdoc:{doc_id}, mapping{ content: chunk_text, embedding: embedding_bytes })查询时用KNN找最近邻q Query((*)[KNN 5 embedding $vec AS score] RETURN 5 score content).sort_by(score).dialect(2) result r.ft(doc_idx).search(q, query_params{vec: query_embedding_bytes})这套方案的优点是部署成本极低不用额外学一个新系统。但有几个注意点要确认Redis实例加载了RediSearch模块Docker镜像推荐redis/redis-stack-server自带Search、JSON、TimeSeries等常用模块。向量维度要和embedding模型保持一致。比如text-embedding-3-small默认输出1536维384维的是比较轻量的模型。维度越高越占内存需要在效果和资源之间权衡。索引数据量变大之后KNN查询的耗时会上涨最好对向量字段设置合适的M、EF_CONSTRUCTION参数或者根据业务给向量加分类标签缩小检索范围。3.4 分布式锁多服务不打架AI应用里常见一个并发问题多个Agent或定时任务同时处理同一批数据结果重复执行、重复调用模型。比如一个“自动分析新上传文档”的后台任务如果部署了两个实例文档一上传两个实例同时开始处理不仅浪费还可能生成两个互相冲突的结果。解决这个问题的最经典方案就是Redis分布式锁。核心命令特别简单SET lock:doc:123 随机值 NX EX 30NX保证只有没锁的时候才能设置成功EX 30表示30秒自动过期随机值用来在释放时校验是不是自己的锁。Python里可以这样封装import uuid import time import redis r redis.Redis() def acquire_lock(key, timeout30): token str(uuid.uuid4()) ok r.set(key, token, nxTrue, extimeout) if ok: return token return None def release_lock(key, token): # 使用 Lua 脚本保证“检查-删除”原子性 script if redis.call(get, KEYS[1]) ARGV[1] then return redis.call(del, KEYS[1]) else return 0 end return r.eval(script, 1, key, token)这里有两个经验教训都是从生产事故里总结出来的第一锁的值必须是唯一Token。如果释放锁的时候只是简单DEL万一锁已经过期被别人拿到你这一删就把别人的锁删了造成多人同时进入临界区。用Lua脚本判断“当前值是否等于自己设置的Token”能有效避免误删。第二业务执行时间不能超过锁过期时间。如果业务跑了40秒锁30秒就过期了其他服务照样进入临界区。解决思路有两个一是把过期时间调大留足余量二是加一个“续期”机制在业务执行过程中定时给锁续期。网上有很多现成的实现如redis-lock库但生产环境我更推荐自己写一个轻量的续期循环逻辑清楚了才能对付突发状况。3.5 限流与成本护栏大模型接口的“预算”属性决定了它比传统接口更依赖限流。一次失控的循环调用几分钟就能烧掉几千块。限流方案有很多种我这里分享一个基于RedisZSET的滑动窗口实现既简单又精确def is_allowed(user_id, max_requests10, window_seconds60): key frate_limit:{user_id} now time.time() pipeline r.pipeline() pipeline.zremrangebyscore(key, 0, now - window_seconds) pipeline.zadd(key, {str(now): now}) pipeline.expire(key, window_seconds) pipeline.zcard(key) results pipeline.execute() return results[-1] max_requests逻辑是把每个请求的时间戳写入ZSET移除窗口外的旧时间戳统计当前窗口内的请求数。ZSET天然支持按时间排序和范围删除非常适合滑动窗口。除了QPS限流我还建议做一个独立的Token预算限流每个用户每天允许消耗多少Token。因为不同的Prompt长度差异很大QPS低不代表费用低。把每次调用的Token用量累加到Redis计数器里按天重置超过阈值直接拒绝请求。我是把INCRBY配合EXPIRE实现日计数即使服务重启也不会丢数据。要注意的是限流逻辑本身必须非常高效不能在Redis之外再做太多计算否则限流器反而成为性能瓶颈。4. 进阶缓存治理、序列化与性能优化4.1 缓存穿透、击穿、雪崩Redis做缓存最怕三类问题穿透、击穿、雪崩。AI场景里依然会遇到甚至因为模型接口的“昂贵”特性变得更加致命。缓存穿透指查询一个不存在的Key每次都直接请求模型缓存形同虚设。典型场景是用户问一个知识库完全没覆盖的问题Redis里缓存了“没有结果”却被当成没有缓存处理。解法有两个一是对“空结果也做短TTL缓存”二是用布隆过滤器先判断数据是否存在。我建议兜底用空值缓存成本低、见效快。缓存击穿指某一个热点Key过期瞬间大量请求同时打到模型接口。AI应用里典型场景是一个爆款内容突然被大量用户同时提问原缓存恰好过期一瞬间所有请求都去调大模型。解法有三种加锁只允许一个请求去重建缓存互斥锁或者热点数据不设置过期时间或者用“逻辑过期”方案缓存里存一个失效时间戳异步刷新。互斥锁在分布式场景下正好用上前面说的Redis分布式锁。缓存雪崩指大量Key同时过期导致流量集中打到后端。解法很直白过期时间加随机扰动或者在集群层面做分片隔离。我习惯在设置TTL的时候加一个随机数比如基准3600秒实际过期时间在3600 random(0, 300)之间波动能很有效地打散过期时间点。4.2 Key 设计与命令使用规范Key命名看起来是小事但等排查线上问题的时候就知道多重要了。我强烈建议采用层级命名法用冒号分隔业务域:对象类型:对象ID:具体字段例如ai:session:user_12345:messagesai:cache:prompt_hash_v1:xxxxxai:doc:74821:embedding好处有三个一是模糊匹配好排查用SCAN就能遍历某个业务域的全部Key二是避免不同业务之间互相覆盖三是团队协作时从Key一眼能看出数据归属。命名之外还有几个容易忽略的规范不使用KEYS命令生产环境它会阻塞Redis用SCAN才是安全的。批量操作尽量用pipeline尤其写会话、更新计数器这种高频流程round trip 减少一个数量级。String类型不要乱塞大对象单个Value如果超过50KB读写性能会明显下降我建议超过这个阈值就拆字段或压缩。设置过期时间时尽量随机化避免同一时刻大量Key同时到期。4.3 序列化选型与坑Redis存储的值都是字节流应用层必须约定好“怎么把对象变成字节”。这一步的选型直接影响存储体积和读写性能。我在不同项目里用过四种方案优缺点非常明确序列化方式优点缺点适用场景JSON字符串通用、可读性好、跨语言体积大、解析慢调试期、对接第三方MessagePack体积小、速度快、支持多种语言可读性差、调试麻烦生产环境常用PicklePython零配置、支持任意对象不安全、不可跨语言仅限本地测试Protobuf极致性能、体积最小需要额外生成代码、维护成本高大规模生产我的建议非常明确生产环境不要用Pickle跑AI数据。Pickle在反序列化时存在代码执行风险而且格式Python独有一旦以后要接Java、Go服务全得重来。日常联调用JSON最方便正式环境换成MessagePack性能与易用性平衡得最好。每个序列化方案都有个藏坑点写入时用的序列化器读取时也必须用同一套。最常见的问题是项目升级时换了默认序列化器旧Key还在但新代码读不出来直接抛反序列化异常。解决办法是正式发布前评估好旧缓存清理策略或者写兼容层。4.4 内存监控与日志排查Redis跑起来之后不能装完就扔一边。AI应用的数据量增长很快尤其是向量和会话记录内存很容易被吃满。我平时一般看四个指标INFO memory查看used_memory和maxmemory确认有没有接近上限。INFO keyspace看每个数据库的Key数量和过期Key数量。INFO stats关注evicted_keys是不是在持续增长如果增长说明内存淘汰很严重。SLOWLOG慢查询日志找出执行时间超长的命令。在AI场景里大对象读写和KNN检索最容易触发慢查询。一旦内存到达上限Redis默认会根据maxmemory-policy策略淘汰Key。AI缓存这类数据可以接受allkeys-lru但会话记录被淘汰就可能导致对话历史丢失。所以我建议给不同业务分配不同的淘汰策略比如会话库用volatile-ttl优先淘汰快过期的纯缓存库用allkeys-lru。日志方面Redis默认日志比较克制但在排查连接异常、主从不一致时很有用。建议把logfile设置到固定文件再配合DEBUG等级排查问题效率高很多。5. 实战中踩过的坑排查记录5.1 连接超时别急着怪Redis有段时间我发现AI服务总是间歇性连接超时排查了半天最后发现根本不是Redis的问题而是应用服务默认连接池太小高并发时线程都在等连接。排查思路比较稳妥先确认Redis本身负载INFO看connected_clients、used_cpu再查应用侧连接池配置max_connections是否够用然后看网络层是否有丢包redis-cli -h 主机 ping连续跑几十次。Redis的连接超时高发原因还有没设置timeout导致空闲连接占用、客户端库版本过老、跨机房访问延迟过高。生产环境建议把连接池上限调大同时给空闲连接设置合理的timeout。5.2 序列化错乱存进去读不出来这个坑我至少见过三次测试环境没问题一上生产代码里拿到的数据变成乱码甚至直接抛异常。绝大多数情况是同一个Key被不同序列化策略的数据覆盖了。比如A服务用JSON存B服务用MessagePack存或者同一个服务升级时换了序列化器旧数据没清理。最诡异的是如果两个序列化器恰好都用差不多的二进制头可能只是偶尔解出脏数据查起来更加困难。解决办法第一所有读写Redis的代码必须明确指定序列化器不要依赖默认配置第二发布涉及序列化变更的版本前先评估旧缓存影响范围第三考虑给Key加上数据格式版本号例如v1、v2从根源上避免交叉读取。5.3 内存爆炸向量数据增长太快有一次我在本地跑通RAG后直接接上生产知识库导入了几十万条文档向量。第二天发现Redis内存占用超过90%频发内存淘汰告警。原因很简单单个向量384维float32数组一个大约1536字节几十万条就是几百MB。真实场景还经常是1536维的embedding大约6KB一条中等规模就轻松上GB。解决方案有三个方向控制向量维度选择轻量embedding模型或者对已有向量做降维如PCA降到256维使用乘积量化PQ等压缩方案但Redis自带的FLAT索引不支持需要换索引类型分片存储按业务域拆成多个Redis实例避免单实例扛所有向量。我最终的方案是线上用HNSW索引替代FLAT同样的召回效果下内存占用和查询延迟都明显下降。选索引类型时不要一味追求最高召回率要在工程上做取舍。5.4 分布式锁过期业务没跑完锁先没了这个坑在AI任务里尤其容易出现。大模型接口返回慢一个调用可能就要20秒如果锁过期时间设成10秒第二个请求就会趁虚而入。我的解决办法是锁续期循环起一个后台线程每过1/3锁过期时间就检查一下锁是否还是自己的是就续期。业务结束主动释放锁并停止续期。这样既避免锁“永久不释放”又保证业务执行期间锁一直有效。另外一定要提醒释放锁的代码要放进finally块不然业务一异常锁就一续到天荒地老。5.5 缓存与数据库不一致AI应用里经常有这种流程文档更新之后请求先打到缓存结果模型拿到的还是旧内容。常见原因是更新数据库后只更新了数据库没有主动删Redis缓存。业界成熟的模式是“先更新数据库再删除缓存”。因为写缓存要比写库快得多一旦顺序反了很容易出现并发读写咬合的问题。如果项目对一致性要求更高可以用“延迟双删”先删缓存更新库稍等几百毫秒再删一次缓存。这种方案能覆盖绝大多数场景唯一代价是每次更新要额外一次Redis操作。在AI知识库更新场景里我习惯在更新文档的同时给对应缓存Key设置一个很短的TTL比如5秒让旧缓存自动过期新请求自然落到新数据操作简单也不用担心双删竞态。最后说点个人的体会。做AI应用和做传统后端最大的不同是模型能力是“软”的工程能力是“硬”的。模型输出不稳定可以通过缓存、上下文管理、限流与重试来兜底而Redis在这条链路上扮演的角色远比我们以为的“缓存数据库”要重要得多。它既是大模型的记忆层也是成本控制的关键闸门更是多服务协作的协调者。我自己的建议是不要一上来就追新框架先把Redis的基础类型、数据结构、分布式锁、过期策略这套基本功打牢AI应用里90%的状态管理需求都能覆盖。等业务真正到了上千万条向量、日均亿级调用的体量再去研究分片、集群和各种专业向量数据库也不迟。脚踏实地把这一层做稳AI应用的地基就不会漏风。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

16S rRNA扩增子数据提交NCBI:SRA与BioProject全流程 2026/10/1 9:56:32

16S rRNA扩增子数据提交NCBI:SRA与BioProject全流程

做微生物组的人迟早会撞上这一步:文章投出去,编辑或审稿人在返修意见里加一句,请把 16S rRNA 测序数据存到公共数据库,并在文中给出登录号。第一次碰到的时候我整个人是懵的——原始 fastq 在硬盘里躺了半年,文件名七零…

阅读更多 →
大模型服务器部署全攻略:选型、云资源与内网穿透实践 2026/10/1 9:56:31

大模型服务器部署全攻略:选型、云资源与内网穿透实践

1. 部署前最重要的不是选框架,而是先定位场景我接触过的不少团队,拿到"部署大模型"这个任务后第一反应就是搜框架排名:vLLM 还是 SGLang?群里的朋友推荐了哪个?然后照着最热门的方案拉一个镜像,模…

阅读更多 →
C与Lua混合开发实战:目标平台选型、嵌入流程与性能优化 2026/10/1 9:56:25

C与Lua混合开发实战:目标平台选型、嵌入流程与性能优化

1. 目标平台与技术栈的选型逻辑1.1 为什么“目标平台”决定了整个项目的走向做任何一款游戏或者工具类项目,第一件事不是写代码,而是把“跑在哪儿”这件事想清楚。目标平台这四个字听起来像是立项文档里的一句废话,但实际上它直接决定了你后面…

阅读更多 →
MAS 激活脚本:新手 3 步免费快速激活 Windows 11 与 Office 完整指南 2026/10/1 9:56:25

MAS 激活脚本:新手 3 步免费快速激活 Windows 11 与 Office 完整指南

MAS 激活脚本:新手 3 步免费快速激活 Windows 11 与 Office 完整指南 【免费下载链接】Microsoft-Activation-Scripts Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced trouble…

阅读更多 →
EP_无人机机巢的参数和米定位、对比 2026/10/1 9:56:25

EP_无人机机巢的参数和米定位、对比

EP:Engineering and Project 当前无人机的机场的配置存在两个等级:一、高配,全天候,全适应;二、减配,提高出勤条件、降低出勤效率。而当前大疆无人机机场和道通无人机机巢正是这两类的典型代表,…

阅读更多 →
【MATLAB例程】三维RRT(快速扩展随机树)路径规划与TDOA(到达时间差)定位算法。附完整代码的下载链接 2026/10/1 9:56:25

【MATLAB例程】三维RRT(快速扩展随机树)路径规划与TDOA(到达时间差)定位算法。附完整代码的下载链接

原创代码,包运行成功。讲解、定制可联系我 文章目录简介路径规划模型量测模型运行结果MATLAB源代码简介 程序实现三维快速扩展随机树(Rapidly-exploring Random Tree, RRT)避障路径规划与到达时间差(Time Difference of Arrival,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉