Redis MCP Server - 为AI应用提供高性能数据管理
官方实现 | Stars: 275 | Python | Apache-2.0
概述
Redis MCP Server 是 Redis 官方提供的 Model Context Protocol 实现,作为 AI 应用的高性能数据层。它通过自然语言接口,使 AI 助手能够直接管理 Redis 中的各种数据结构,支持从简单缓存到复杂向量搜索的全场景应用。
该服务器提供了完整的 Redis 功能支持,包括字符串、哈希、列表、集合、有序集合、流、JSON 文档和向量搜索。特别适合需要高性能、实时响应的 AI 应用场景,如会话管理、对话历史、实时缓存、推荐系统和 RAG 语义搜索。
核心特性
- ✅ Redis 官方实现,提供原生级别的性能和可靠性
- 🚀 完整的数据结构支持:字符串、哈希、列表、集合、有序集合、流
- 📄 JSON 文档存储:支持复杂嵌套结构和路径操作
- 🔍 向量搜索能力:内置向量索引和相似度检索
- 💬 Pub/Sub 消息系统:实时消息发布和订阅
- 🌊 Streams 流处理:事件溯源和消费者组支持
- 🔐 安全连接:支持 SSL/TLS、ACL 权限控制
- 🎯 集群模式:支持 Redis Cluster 分布式部署
- 🔌 兼容多种客户端:Claude Desktop、VS Code、Cursor、OpenAI Agents
工具列表
1. 字符串操作工具
string-set
功能:设置字符串值,支持过期时间
参数:
key(string, 必需) - 键名value(string, 必需) - 字符串值ex(number, 可选) - 过期时间(秒)
示例:
1 | { |
用途:配置存储、会话管理、缓存响应
string-get
功能:获取字符串值
参数:
key(string, 必需) - 键名
示例:
1 | { |
用途:读取配置、获取缓存、会话恢复
2. 哈希操作工具
hash-set
功能:在单个键内存储字段-值对
参数:
key(string, 必需) - 哈希键名field(string, 必需) - 字段名value(string, 必需) - 字段值
示例:
1 | { |
用途:用户信息存储、产品属性管理、向量嵌入存储
hash-get
功能:获取哈希字段值
参数:
key(string, 必需) - 哈希键名field(string, 必需) - 字段名
示例:
1 | { |
用途:读取用户信息、获取产品详情、检索嵌入向量
hash-getall
功能:获取哈希的所有字段和值
参数:
key(string, 必需) - 哈希键名
示例:
1 | { |
用途:获取完整对象、数据导出、全量读取
3. 列表操作工具
list-push
功能:向列表添加项目
参数:
key(string, 必需) - 列表键名value(string, 必需) - 要添加的值direction(string, 可选) - 添加方向(left/right),默认 right
示例:
1 | { |
用途:消息队列、任务队列、操作历史
list-range
功能:获取列表范围内的元素
参数:
key(string, 必需) - 列表键名start(number, 必需) - 起始索引stop(number, 必需) - 结束索引
示例:
1 | { |
用途:批量读取、分页查询、范围查询
4. 集合操作工具
set-add
功能:向集合添加成员
参数:
key(string, 必需) - 集合键名member(string, 必需) - 要添加的成员
示例:
1 | { |
用途:唯一用户ID、标签管理、去重操作
set-members
功能:列出集合所有成员
参数:
key(string, 必需) - 集合键名
示例:
1 | { |
用途:列出所有标签、获取用户列表、查看集合内容
5. 有序集合操作工具
sorted-set-add
功能:添加带分数的排序集合成员
参数:
key(string, 必需) - 排序集合键名score(number, 必需) - 分数member(string, 必需) - 成员
示例:
1 | { |
用途:排行榜、优先级队列、时间线数据
sorted-set-range
功能:按分数范围获取排序集合成员
参数:
key(string, 必需) - 排序集合键名start(number, 必需) - 起始索引stop(number, 必需) - 结束索引
示例:
1 | { |
用途:排行榜TOP N、分数区间查询、时间范围查询
6. Pub/Sub 工具
pubsub-publish
功能:向频道发布消息
参数:
channel(string, 必需) - 频道名称message(string, 必需) - 消息内容
示例:
1 | { |
用途:实时通知、聊天应用、事件广播
7. Streams 流工具
stream-add
功能:向流添加数据
参数:
key(string, 必需) - 流键名fields(object, 必需) - 字段-值对
示例:
1 | { |
用途:事件日志、活动流、传感器数据
stream-read
功能:从流读取数据
参数:
key(string, 必需) - 流键名count(number, 可选) - 读取数量
示例:
1 | { |
用途:读取事件、获取活动、数据采集
8. JSON 文档工具
json-set
功能:存储 JSON 文档
参数:
key(string, 必需) - 键名path(string, 必需) - JSON 路径value(object, 必需) - JSON 值
示例:
1 | { |
用途:文档数据库、配置管理、复杂对象存储
json-get
功能:获取 JSON 文档
参数:
key(string, 必需) - 键名path(string, 可选) - JSON 路径
示例:
1 | { |
用途:读取文档、获取配置、检索对象
9. 向量搜索工具
vector-create-index
功能:创建向量索引
参数:
indexName(string, 必需) - 索引名称dimensions(number, 必需) - 向量维度
示例:
1 | { |
用途:语义搜索、相似度检索、RAG应用
vector-search
功能:执行向量搜索
参数:
indexName(string, 必需) - 索引名称vector(array, 必需) - 查询向量k(number, 可选) - 返回结果数
示例:
1 | { |
用途:相似内容查找、推荐系统、文档检索
配置方式
环境变量
1 | # Redis 连接配置 |
Claude Desktop 配置
在 claude_desktop_config.json 中添加:
1 | { |
使用 Redis URI
1 | { |
Docker 部署
1 | docker run -d --name redis-mcp \ |
SSL/TLS 加密连接
1 | uvx redis-mcp-server \ |
Redis Cluster 配置
1 | uvx redis-mcp-server \ |
使用场景
1. 会话管理
存储用户会话数据,支持自动过期。
示例流程:
- 用户登录后,使用
string-set存储会话ID - 设置合适的过期时间(如 3600秒)
- 每次请求时,使用
string-get验证会话 - 会话过期自动删除,无需手动清理
1 | // 创建会话 |
2. 对话历史存储
使用 Streams 存储 AI 对话历史,支持时间序列查询。
示例流程:
- 每次对话使用
stream-add添加到流中 - 包含时间戳、用户、助手响应等信息
- 使用
stream-read读取最近的对话 - 支持消费者组实现多客户端同步
1 | // 添加对话记录 |
3. 实时缓存
使用字符串和哈希缓存 API 响应,提升性能。
示例流程:
- API 请求前,先用
string-get检查缓存 - 缓存命中,直接返回
- 缓存未命中,调用后端 API
- 使用
string-set存储结果,设置过期时间
1 | // 缓存 API 响应 |
4. 速率限制
使用有序集合实现滑动窗口速率限制。
示例流程:
- 每次请求,用
sorted-set-add记录时间戳 - 使用当前时间作为分数
- 用
sorted-set-range查询时间窗口内的请求数 - 超过限制则拒绝请求
1 | // 记录请求 |
5. 推荐系统
使用向量搜索实现基于内容的推荐。
示例流程:
- 用
vector-create-index创建产品嵌入索引 - 使用
hash-set存储产品嵌入向量 - 用户查看产品时,用
vector-search查找相似产品 - 返回推荐结果
1 | // 查找相似产品 |
6. RAG 语义搜索
结合向量搜索和 JSON 存储实现 RAG 应用。
示例流程:
- 文档分块后,生成嵌入向量
- 用
json-set存储文档内容和元数据 - 用
vector-create-index创建向量索引 - 查询时,用
vector-search找到相关文档 - 从 JSON 中提取完整内容
1 | // 存储文档 |
技术架构
数据流架构
1 | AI 应用 → MCP Client → Redis MCP Server → Redis Database |
支持的 Redis 部署模式
- 单机模式 - 简单部署,适合开发和小规模应用
- 主从复制 - 读写分离,提高读取性能
- 哨兵模式 - 高可用,自动故障转移
- 集群模式 - 水平扩展,数据分片
传输协议
- stdio - 标准输入输出(Claude Desktop、VS Code)
- HTTP - RESTful API(Web 应用集成)
- WebSocket - 双向实时通信
与其他 MCP 服务器对比
| 特性 | Redis MCP | Qdrant MCP | MongoDB MCP |
|---|---|---|---|
| 数据结构 | ⭐⭐⭐⭐⭐ 丰富 | ⭐⭐⭐ 向量为主 | ⭐⭐⭐⭐ 文档为主 |
| 性能 | ⭐⭐⭐⭐⭐ 极快 | ⭐⭐⭐⭐ 快 | ⭐⭐⭐ 中等 |
| 向量搜索 | ⭐⭐⭐⭐ 内置 | ⭐⭐⭐⭐⭐ 专业 | ❌ 无 |
| 实时性 | ⭐⭐⭐⭐⭐ 内存级 | ⭐⭐⭐ 磁盘级 | ⭐⭐⭐ 磁盘级 |
| 扩展性 | ⭐⭐⭐⭐⭐ 集群 | ⭐⭐⭐⭐ 分布式 | ⭐⭐⭐⭐ 分片 |
| 适用场景 | 缓存、会话、实时 | 语义搜索、RAG | 文档存储、查询 |
最佳实践
1. 合理设置过期时间
1 | # 会话数据:1小时 |
2. 使用合适的数据结构
1 | # 简单值 → String |
3. 键命名规范
1 | # 使用冒号分隔命名空间 |
4. 性能优化
- 批量操作:使用 Pipeline 减少网络往返
- 连接池:复用连接,降低开销
- 读写分离:主节点写入,从节点读取
- 集群分片:数据分散到多个节点
5. 安全配置
1 | # 使用 ACL 权限控制 |
常见问题
Q: Redis MCP Server 支持哪些 Redis 版本?
支持 Redis 6.0+ 版本,推荐使用 Redis 7.0+ 以获得最佳功能支持(如 JSON、向量搜索)。
Q: 如何连接 Redis Cloud?
1 | uvx redis-mcp-server \ |
Q: 向量搜索需要安装额外模块吗?
需要 RediSearch 模块。Redis Stack 和 Redis Cloud 默认包含此模块。
Q: 如何监控 Redis MCP Server 性能?
1 | # 使用 Redis INFO 命令 |
Q: 支持事务吗?
当前版本不直接支持 MULTI/EXEC 事务,但可以通过 Lua 脚本实现原子操作。
Q: 如何备份数据?
1 | # RDB 快照备份 |
评分详情
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能性 | 4.9/5.0 | 完整的 Redis 功能支持,覆盖所有主要数据结构 |
| 性能 | 5.0/5.0 | 内存级性能,毫秒级响应时间 |
| 文档质量 | 4.7/5.0 | 官方文档详细,示例丰富 |
| 社区活跃度 | 4.8/5.0 | Redis 官方维护,社区庞大 |
| 维护状态 | 4.9/5.0 | 持续更新,快速响应 |
| 易用性 | 4.6/5.0 | 自然语言接口,配置灵活 |
| 综合评分 | 4.8/5.0 | 优秀的高性能数据管理 MCP 实现 |
总结
Redis MCP Server 是构建高性能 AI 应用数据层的首选方案。它将 Redis 的极致性能与 MCP 协议的标准化完美结合,为开发者提供了从简单缓存到复杂向量搜索的全方位数据管理能力。
推荐指数: ⭐⭐⭐⭐⭐ (5/5)
适合你的情况:
- ✅ 需要高性能缓存
- ✅ 实时会话管理
- ✅ 对话历史存储
- ✅ 速率限制和计数
- ✅ 推荐系统和个性化
- ✅ RAG 语义搜索
- ✅ 实时消息通知
- ✅ 事件溯源和流处理
不适合的情况:
- ❌ 需要复杂 SQL 查询
- ❌ 大量冷数据存储
- ❌ 严格 ACID 事务要求
- ❌ 仅需简单文件存储
相关资源
- GitHub: https://github.com/redis/mcp-redis
- PyPI: https://pypi.org/project/redis-mcp-server/
- Docker Hub: https://hub.docker.com/r/mcp/redis
- Redis 文档: https://redis.io/docs/
- Redis Stack: https://redis.io/docs/stack/
- RediSearch: https://redis.io/docs/stack/search/
- Redis JSON: https://redis.io/docs/stack/json/
- MCP 协议: https://modelcontextprotocol.io/
更新时间: 2025-10-14
数据来源: GitHub, 质量评分: 4.8/5.0