前言
很多开发者在做 AI 项目时,最开始往往只有:
前端
↓
Node.js
↓
OpenAI API
整个系统非常简单。
初期没有问题。
但随着用户增加,很快就会遇到:
- 响应速度变慢
- 上下文越来越长
- API 成本不断增加
- 重复请求越来越多
- 并发能力不足
这时,大多数问题最终都会指向一个组件:
Redis。
很多人认为 Redis 只是缓存数据库。
实际上,对于 AI 应用来说,Redis 更像是整个系统的大脑。
AI 系统为什么天然需要缓存?
传统 Web 系统:
请求完成之后就结束。
例如:
用户登录
↓
数据库查询
↓
返回结果
而 AI 系统不一样。
用户会持续对话。
例如:
你好
↓
继续刚才的话题
↓
再问一个问题
↓
继续追问
整个上下文需要持续存在。
如果每次都重新计算。
成本会越来越高。
Redis 的作用就是保存这些状态。
Redis 在 AI 项目中的五种角色
会话缓存
保存:
- conversation id
- 最近消息
- 用户状态
避免频繁读取数据库。
Prompt Cache
很多用户的问题实际上高度重复。
例如:
什么是 Docker?
什么是 Redis?
什么是 Nginx?
如果每次都重新请求模型。
成本会越来越高。
Redis 可以直接缓存答案。
提高速度。
降低成本。
Rate Limit
限制:
每分钟最多 10 次
避免恶意刷接口。
这是 AI 产品必须具备的能力。
Queue
高并发任务:
图片生成
Embedding
批量总结
都可以通过 Redis Queue 处理。
避免系统崩溃。
Streaming 状态
SSE 输出过程中。
Redis 可以记录:
token 数量
输出状态
任务进度
实现断点恢复。
为什么 MySQL 不适合替代 Redis?
MySQL 可以保存历史记录。
但不适合:
实时上下文。
原因:
- IO 成本高
- 延迟大
- 并发能力弱
Redis 的毫秒级访问能力更加适合 AI 系统。
推荐架构
用户
↓
Cloudflare
↓
Nginx
↓
Node.js
↓
Redis
↓
MySQL
↓
OpenAI
Redis 放在中间。
负责状态管理。
MySQL 负责长期存储。
两者职责不同。
总结
对于 AI 项目来说。
Redis 不只是缓存。
而是:
状态中心。
队列中心。
限流中心。
上下文中心。
随着项目规模增长,Redis 会逐渐成为整个系统中最重要的组件之一。
X记录空间