Redis MCP Server - 为AI应用提供高性能数据管理

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
2
3
4
5
{
"key": "session:user123",
"value": "active",
"ex": 3600
}

用途:配置存储、会话管理、缓存响应

string-get

功能:获取字符串值

参数

  • key (string, 必需) - 键名

示例

1
2
3
{
"key": "session:user123"
}

用途:读取配置、获取缓存、会话恢复

2. 哈希操作工具

hash-set

功能:在单个键内存储字段-值对

参数

  • key (string, 必需) - 哈希键名
  • field (string, 必需) - 字段名
  • value (string, 必需) - 字段值

示例

1
2
3
4
5
{
"key": "user:1001",
"field": "name",
"value": "Alice"
}

用途:用户信息存储、产品属性管理、向量嵌入存储

hash-get

功能:获取哈希字段值

参数

  • key (string, 必需) - 哈希键名
  • field (string, 必需) - 字段名

示例

1
2
3
4
{
"key": "user:1001",
"field": "name"
}

用途:读取用户信息、获取产品详情、检索嵌入向量

hash-getall

功能:获取哈希的所有字段和值

参数

  • key (string, 必需) - 哈希键名

示例

1
2
3
{
"key": "user:1001"
}

用途:获取完整对象、数据导出、全量读取

3. 列表操作工具

list-push

功能:向列表添加项目

参数

  • key (string, 必需) - 列表键名
  • value (string, 必需) - 要添加的值
  • direction (string, 可选) - 添加方向(left/right),默认 right

示例

1
2
3
4
5
{
"key": "queue:tasks",
"value": "process_order_123",
"direction": "right"
}

用途:消息队列、任务队列、操作历史

list-range

功能:获取列表范围内的元素

参数

  • key (string, 必需) - 列表键名
  • start (number, 必需) - 起始索引
  • stop (number, 必需) - 结束索引

示例

1
2
3
4
5
{
"key": "queue:tasks",
"start": 0,
"stop": 9
}

用途:批量读取、分页查询、范围查询

4. 集合操作工具

set-add

功能:向集合添加成员

参数

  • key (string, 必需) - 集合键名
  • member (string, 必需) - 要添加的成员

示例

1
2
3
4
{
"key": "tags:article:123",
"member": "ai"
}

用途:唯一用户ID、标签管理、去重操作

set-members

功能:列出集合所有成员

参数

  • key (string, 必需) - 集合键名

示例

1
2
3
{
"key": "tags:article:123"
}

用途:列出所有标签、获取用户列表、查看集合内容

5. 有序集合操作工具

sorted-set-add

功能:添加带分数的排序集合成员

参数

  • key (string, 必需) - 排序集合键名
  • score (number, 必需) - 分数
  • member (string, 必需) - 成员

示例

1
2
3
4
5
{
"key": "leaderboard:game",
"score": 9500,
"member": "player123"
}

用途:排行榜、优先级队列、时间线数据

sorted-set-range

功能:按分数范围获取排序集合成员

参数

  • key (string, 必需) - 排序集合键名
  • start (number, 必需) - 起始索引
  • stop (number, 必需) - 结束索引

示例

1
2
3
4
5
{
"key": "leaderboard:game",
"start": 0,
"stop": 9
}

用途:排行榜TOP N、分数区间查询、时间范围查询

6. Pub/Sub 工具

pubsub-publish

功能:向频道发布消息

参数

  • channel (string, 必需) - 频道名称
  • message (string, 必需) - 消息内容

示例

1
2
3
4
{
"channel": "notifications",
"message": "New order received"
}

用途:实时通知、聊天应用、事件广播

7. Streams 流工具

stream-add

功能:向流添加数据

参数

  • key (string, 必需) - 流键名
  • fields (object, 必需) - 字段-值对

示例

1
2
3
4
5
6
7
8
{
"key": "events:user:actions",
"fields": {
"action": "login",
"user_id": "123",
"timestamp": "2025-10-11T10:00:00Z"
}
}

用途:事件日志、活动流、传感器数据

stream-read

功能:从流读取数据

参数

  • key (string, 必需) - 流键名
  • count (number, 可选) - 读取数量

示例

1
2
3
4
{
"key": "events:user:actions",
"count": 10
}

用途:读取事件、获取活动、数据采集

8. JSON 文档工具

json-set

功能:存储 JSON 文档

参数

  • key (string, 必需) - 键名
  • path (string, 必需) - JSON 路径
  • value (object, 必需) - JSON 值

示例

1
2
3
4
5
6
7
8
9
10
11
12
{
"key": "product:1001",
"path": "$",
"value": {
"name": "Laptop",
"price": 999,
"specs": {
"cpu": "Intel i7",
"ram": "16GB"
}
}
}

用途:文档数据库、配置管理、复杂对象存储

json-get

功能:获取 JSON 文档

参数

  • key (string, 必需) - 键名
  • path (string, 可选) - JSON 路径

示例

1
2
3
4
{
"key": "product:1001",
"path": "$.specs.cpu"
}

用途:读取文档、获取配置、检索对象

9. 向量搜索工具

vector-create-index

功能:创建向量索引

参数

  • indexName (string, 必需) - 索引名称
  • dimensions (number, 必需) - 向量维度

示例

1
2
3
4
{
"indexName": "embeddings:products",
"dimensions": 768
}

用途:语义搜索、相似度检索、RAG应用

功能:执行向量搜索

参数

  • indexName (string, 必需) - 索引名称
  • vector (array, 必需) - 查询向量
  • k (number, 可选) - 返回结果数

示例

1
2
3
4
5
{
"indexName": "embeddings:products",
"vector": [0.1, 0.2, 0.3, ...],
"k": 10
}

用途:相似内容查找、推荐系统、文档检索

配置方式

环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Redis 连接配置
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=0

# 认证配置
REDIS_USERNAME=default
REDIS_PASSWORD=your-password

# SSL/TLS 配置
REDIS_SSL=true
REDIS_SSL_KEYFILE=/path/to/keyfile
REDIS_SSL_CERTFILE=/path/to/certfile
REDIS_SSL_CA_CERTS=/path/to/ca-certs

# 集群模式
REDIS_CLUSTER_MODE=true

Claude Desktop 配置

claude_desktop_config.json 中添加:

1
2
3
4
5
6
7
8
9
10
11
{
"mcpServers": {
"redis": {
"command": "uvx",
"args": ["redis-mcp-server", "--host", "localhost", "--port", "6379"],
"env": {
"REDIS_PASSWORD": "your-password"
}
}
}
}

使用 Redis URI

1
2
3
4
5
6
7
8
9
10
11
12
{
"mcpServers": {
"redis": {
"command": "uvx",
"args": [
"redis-mcp-server",
"--url",
"redis://user:pass@localhost:6379/0"
]
}
}
}

Docker 部署

1
2
3
4
5
docker run -d --name redis-mcp \
-e REDIS_HOST=redis-server \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=mypassword \
mcp/redis

SSL/TLS 加密连接

1
2
3
4
5
6
uvx redis-mcp-server \
--host redis.example.com \
--port 6380 \
--ssl-certfile /path/to/cert.pem \
--ssl-keyfile /path/to/key.pem \
--ssl-ca-certs /path/to/ca.pem

Redis Cluster 配置

1
2
3
uvx redis-mcp-server \
--url redis://node1:6379,node2:6379,node3:6379 \
--cluster-mode

使用场景

1. 会话管理

存储用户会话数据,支持自动过期。

示例流程

  1. 用户登录后,使用 string-set 存储会话ID
  2. 设置合适的过期时间(如 3600秒)
  3. 每次请求时,使用 string-get 验证会话
  4. 会话过期自动删除,无需手动清理
1
2
3
4
5
6
7
// 创建会话
{
"tool": "string-set",
"key": "session:abc123",
"value": "{\"user_id\":\"1001\",\"role\":\"admin\"}",
"ex": 3600
}

2. 对话历史存储

使用 Streams 存储 AI 对话历史,支持时间序列查询。

示例流程

  1. 每次对话使用 stream-add 添加到流中
  2. 包含时间戳、用户、助手响应等信息
  3. 使用 stream-read 读取最近的对话
  4. 支持消费者组实现多客户端同步
1
2
3
4
5
6
7
8
9
10
// 添加对话记录
{
"tool": "stream-add",
"key": "conversation:user123",
"fields": {
"timestamp": "2025-10-11T10:30:00Z",
"role": "user",
"content": "How do I reset my password?"
}
}

3. 实时缓存

使用字符串和哈希缓存 API 响应,提升性能。

示例流程

  1. API 请求前,先用 string-get 检查缓存
  2. 缓存命中,直接返回
  3. 缓存未命中,调用后端 API
  4. 使用 string-set 存储结果,设置过期时间
1
2
3
4
5
6
7
// 缓存 API 响应
{
"tool": "string-set",
"key": "cache:api:/users/1001",
"value": "{\"name\":\"Alice\",\"email\":\"[email protected]\"}",
"ex": 300
}

4. 速率限制

使用有序集合实现滑动窗口速率限制。

示例流程

  1. 每次请求,用 sorted-set-add 记录时间戳
  2. 使用当前时间作为分数
  3. sorted-set-range 查询时间窗口内的请求数
  4. 超过限制则拒绝请求
1
2
3
4
5
6
7
// 记录请求
{
"tool": "sorted-set-add",
"key": "ratelimit:user:1001",
"score": 1697030400,
"member": "request-abc123"
}

5. 推荐系统

使用向量搜索实现基于内容的推荐。

示例流程

  1. vector-create-index 创建产品嵌入索引
  2. 使用 hash-set 存储产品嵌入向量
  3. 用户查看产品时,用 vector-search 查找相似产品
  4. 返回推荐结果
1
2
3
4
5
6
7
// 查找相似产品
{
"tool": "vector-search",
"indexName": "products:embeddings",
"vector": [0.1, 0.2, 0.3, ...],
"k": 5
}

6. RAG 语义搜索

结合向量搜索和 JSON 存储实现 RAG 应用。

示例流程

  1. 文档分块后,生成嵌入向量
  2. json-set 存储文档内容和元数据
  3. vector-create-index 创建向量索引
  4. 查询时,用 vector-search 找到相关文档
  5. 从 JSON 中提取完整内容
1
2
3
4
5
6
7
8
9
10
11
// 存储文档
{
"tool": "json-set",
"key": "doc:123",
"path": "$",
"value": {
"title": "Redis Guide",
"content": "Redis is an in-memory data structure store...",
"embedding": [0.1, 0.2, 0.3, ...]
}
}

技术架构

数据流架构

1
2
3
4
5
AI 应用 → MCP Client → Redis MCP Server → Redis Database

String/Hash/List/
Set/ZSet/Stream/
JSON/Vector Index

支持的 Redis 部署模式

  • 单机模式 - 简单部署,适合开发和小规模应用
  • 主从复制 - 读写分离,提高读取性能
  • 哨兵模式 - 高可用,自动故障转移
  • 集群模式 - 水平扩展,数据分片

传输协议

  • stdio - 标准输入输出(Claude Desktop、VS Code)
  • HTTP - RESTful API(Web 应用集成)
  • WebSocket - 双向实时通信

与其他 MCP 服务器对比

特性 Redis MCP Qdrant MCP MongoDB MCP
数据结构 ⭐⭐⭐⭐⭐ 丰富 ⭐⭐⭐ 向量为主 ⭐⭐⭐⭐ 文档为主
性能 ⭐⭐⭐⭐⭐ 极快 ⭐⭐⭐⭐ 快 ⭐⭐⭐ 中等
向量搜索 ⭐⭐⭐⭐ 内置 ⭐⭐⭐⭐⭐ 专业 ❌ 无
实时性 ⭐⭐⭐⭐⭐ 内存级 ⭐⭐⭐ 磁盘级 ⭐⭐⭐ 磁盘级
扩展性 ⭐⭐⭐⭐⭐ 集群 ⭐⭐⭐⭐ 分布式 ⭐⭐⭐⭐ 分片
适用场景 缓存、会话、实时 语义搜索、RAG 文档存储、查询

最佳实践

1. 合理设置过期时间

1
2
3
4
5
6
7
8
# 会话数据:1小时
string-set session:user123 "data" 3600

# API 缓存:5分钟
string-set cache:api:/users "data" 300

# 临时数据:1天
string-set temp:token:abc "data" 86400

2. 使用合适的数据结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 简单值 → String
string-set "config:app_name" "MyApp"

# 对象属性 → Hash
hash-set "user:1001" "name" "Alice"
hash-set "user:1001" "email" "[email protected]"

# 列表/队列 → List
list-push "queue:tasks" "task1"

# 唯一集合 → Set
set-add "tags:article:123" "ai"

# 排行榜 → Sorted Set
sorted-set-add "leaderboard" 9500 "player123"

# 事件流 → Streams
stream-add "events:orders" {"order_id":"123","status":"paid"}

# 复杂文档 → JSON
json-set "product:1001" "$" {"name":"Laptop","price":999}

# 向量搜索 → Vector Index
vector-create-index "embeddings" 768

3. 键命名规范

1
2
3
4
5
6
7
8
9
10
11
# 使用冒号分隔命名空间
namespace:type:id
user:profile:1001
cache:api:/users/1001
session:token:abc123

# 使用有意义的前缀
temp: # 临时数据
cache: # 缓存数据
session: # 会话数据
config: # 配置数据

4. 性能优化

  • 批量操作:使用 Pipeline 减少网络往返
  • 连接池:复用连接,降低开销
  • 读写分离:主节点写入,从节点读取
  • 集群分片:数据分散到多个节点

5. 安全配置

1
2
3
4
5
6
7
8
9
10
11
# 使用 ACL 权限控制
REDIS_USERNAME=app_user

# 启用 SSL/TLS 加密
REDIS_SSL=true

# 设置强密码
REDIS_PASSWORD=your-strong-password-here

# 绑定特定 IP
REDIS_HOST=127.0.0.1 # 仅本地访问

常见问题

Q: Redis MCP Server 支持哪些 Redis 版本?

支持 Redis 6.0+ 版本,推荐使用 Redis 7.0+ 以获得最佳功能支持(如 JSON、向量搜索)。

Q: 如何连接 Redis Cloud?

1
2
uvx redis-mcp-server \
--url redis://default:[email protected]:12345

Q: 向量搜索需要安装额外模块吗?

需要 RediSearch 模块。Redis Stack 和 Redis Cloud 默认包含此模块。

Q: 如何监控 Redis MCP Server 性能?

1
2
3
4
5
6
7
8
# 使用 Redis INFO 命令
redis-cli INFO stats

# 监控慢查询
redis-cli SLOWLOG GET 10

# 使用 Redis Monitor
redis-cli MONITOR

Q: 支持事务吗?

当前版本不直接支持 MULTI/EXEC 事务,但可以通过 Lua 脚本实现原子操作。

Q: 如何备份数据?

1
2
3
4
5
6
7
8
9
10
# RDB 快照备份
redis-cli SAVE

# AOF 增量备份
redis-cli BGREWRITEAOF

# 使用 Redis 自动持久化
# 配置 redis.conf:
# save 900 1
# save 300 10

评分详情

维度 评分 说明
功能性 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 事务要求
  • ❌ 仅需简单文件存储

相关资源


更新时间: 2025-10-14
数据来源: GitHub, 质量评分: 4.8/5.0

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero