Redis MCP Server:用自然语言驱动Redis的AI原生存储引擎

mcp-redis是由Redis Labs官方开发的自然语言接口服务器,旨在为AI代理应用提供高效的数据管理和搜索功能。它基于Model Content ProtocolMCP)协议,支持Redis的全数据类型,包括字符串、哈希、列表、集合、有序集合、流、JSON和向量索引等。通过自然语言查询,mcp-redis能够无缝与任何MCP客户端集成,实现高性能的数据操作。无论是缓存、会话存储、事件处理还是向量搜索,mcp-redis都能以极简的方式满足需求,让AI代理像调用函数一样操作Redis

一、主要功能

(一)全数据类型支持

mcp-redis支持Redis的所有数据类型,包括:

  • String:支持设置、获取字符串并设置过期时间。例如,“缓存用户Token,过期2小时”。

  • Hash:支持存储字段值对,并支持向量嵌入。例如,“将用户资料存储为哈希,字段包括nameage”。

  • List:支持追加和弹出操作。例如,“将日志追加到队列末尾”。

  • Set:支持添加、删除和列出集合成员。例如,“记录点赞用户并去重”。

  • Sorted Set:支持基于分数的排序。例如,“更新游戏积分榜”。

  • Stream:支持添加、读取和删除流数据。例如,“向订单流写入一条事件”。

  • JSON:支持存储、检索和操作JSON文档。例如,“存储嵌套JSON文档并更新路径”。

  • Vector:支持向量索引和向量搜索。例如,“为文章创建向量索引并搜索相似内容”。


(二)企业级安全与扩展

1. Redis ACL

支持配置Redis访问控制列表(ACL),可以创建只读用户、限制命令权限或指定访问前缀。

2. TLS双向认证

支持SSL/TLS加密连接,通过配置`–ssl-ca-path``–ssl-certfile`等参数,确保数据传输的安全性。

3. 集群模式

支持Redis集群模式,自动处理`MOVED``ASK`重定向,确保高可用性和水平扩展。


(三)多场景集成接口

1. OpenAI Agents SDK

通过简单的配置,可以将mcp-redisOpenAI Agents SDK集成,实现GPT-4o等模型的无缝对接。

2. Claude Desktop

通过`claude_desktop_config.json`配置文件,可以快速将mcp-redis集成到Claude Desktop中。

3. VS Code with GitHub Copilot

VS Code`settings.json`中配置mcp-redis,即可在编辑器中直接使用自然语言查询Redis


二、技术原理

(一)MCP协议:AI代理与Redis的桥梁

1. 协议定义

MCPModel Content Protocol)是一种标准化的通信协议,旨在简化AI代理与外部服务之间的交互。它通过JSON-RPC 2.0封装请求和响应,支持`stdio``streamable-http`两种传输方式。mcp-redis目前支持`stdio`传输,未来将扩展支持`streamable-http`

2. 通信流程

AI代理启动时,mcp-redis作为子进程启动,并与Redis建立常驻连接池。

AI代理通过自然语言发送指令,mcp-redis将其转换为Redis命令并执行。

执行结果通过标准输出返回给AI代理,实现低延迟的交互。

3. 生命周期

启动阶段AI代理启动时,通过配置文件指定mcp-redis的启动命令和参数。

运行阶段mcp-redis维持与Redis的连接,处理来自AI代理的请求。

关闭阶段AI代理关闭时,mcp-redis子进程自动退出,释放资源。


(二)自然语言到Redis命令的转换

1. 词法解析

mcp-redis利用AI代理的Function Calling能力,将自然语言指令拆解为结构化的Redis命令。例如,“缓存用户Token,过期2小时”会被解析为`SETEX token:uid 7200 value`

2. Schema映射

mcp-redis提供YAML格式的Tool Schema,定义了自然语言指令与Redis命令之间的映射关系。这不仅确保了指令的准确性,还避免了SQL注入等安全风险。

3. 向量检索

mcp-redis集成了RedisSearch的向量索引功能,支持基于向量的相似性搜索。例如,“找出与当前问题最相似的10FAQ”会被转换为`FT.SEARCH idx “@embedding:[VECTOR_RANGE 0.2 $query_vec]”`


(三)高性能网络模型

1. 连接池

mcp-redis使用`redis-py``BlockingConnectionPool`,支持高并发连接,单实例QPS可达10k以上。

2. 并发模型

采用`asyncio``uvloop`实现异步处理,延迟P99小于5ms,确保了高吞吐量和低延迟。

3. 序列化

使用`orjson`进行JSON序列化,相比标准库性能提升20%以上。


三、应用场景

(一)AI对话记忆持久化

1. 需求场景:在多轮对话中,AI代理需要持久化对话历史,以便更好地理解和生成上下文相关的回复。

2. 解决方案:

  • 将每轮对话追加到Redis Stream中,使用`XADD`命令。

  • AI代理通过mcp-redis读取历史记录,使用`XREAD`命令。

  • 设置TTL自动清理过期会话,避免数据堆积。


(二)实时推荐系统

1. 需求场景:根据用户的实时行为数据,实时更新推荐列表。

2. 解决方案:

  • 将用户行为事件写入Redis Stream,使用`XADD`命令。

  • 消费者组(Consumer Group)处理Stream中的事件,计算特征向量并存储到Sorted Set中,使用`ZADD`命令。

  • AI代理通过`ZRANGE`命令获取Top-N推荐结果。


(三)知识库语义搜索

1. 需求场景:企业内部文档问答系统需要快速检索相关文档。

2. 解决方案:

  • 将文档切片并生成embedding,存储到Redis Hash中,使用`HSET`命令。

  • AI代理通过mcp-redis`query engine`工具进行向量检索,找到最相似的文档片段。


四、快速使用

(一)前置条件

– Python 3.11+

– Redis 6.2+(推荐使用Redis 7.2.4

– 安装`uv`包管理器:`curl -Ls https://astral.sh/uv/install.sh | sh`


(二)快速部署

1.单机快速体验

# 启动Redis(Docker)docker run -d --name redis -p 6379:6379 redis:7-alpine# 启动mcp-redisuvx --from git+https://github.com/redis/mcp-redis.git@0.2.0 \redis-mcp-server --url redis://localhost:6379/0

2.Claude Desktop集成

`claude_desktop_config.json`中添加以下配置:

{  "mcpServers": {    "redis": {      "type": "stdio",      "command": "/Users/yourusername/.local/bin/uvx",      "args": [        "--from", "git+https://github.com/redis/mcp-redis.git",        "redis-mcp-server",        "--url", "redis://localhost:6379/0"      ]    }  }}

重启Claude Desktop后,在聊天窗口输入:

“把当前对话写入Redis Streamkey=chat_demo


3.Docker生产部署

# 构建Docker镜像docker build -t mcp-redis .# 启动Docker容器docker run -d --name mcp-redis \  -e REDIS_HOST=redis.example.com \  -e REDIS_PWD=yourpassword \  -p 8080:8080 \  mcp-redis

五、结语

mcp-redis的出现为AI代理与Redis的结合提供了一种全新的解决方案。通过自然语言接口,开发者可以更高效地管理和操作Redis中的数据,而无需编写复杂的代码。无论是在AI对话系统、实时推荐Serverless架构还是知识库搜索中,mcp-redis都能发挥重要作用。它不仅简化了开发流程,还提升了系统的性能和可扩展性。如果你正在开发基于AI的应用程序,mcp-redis绝对值得一试。

GitHub地址https://github.com/redis/mcp-redis

往期推荐

【Chrome MCP Server】GitHub趋势榜第一,这个开源神器让AI操控你的浏览器,效率提升300%!

【Firecrawl MCP Server】90%的AI开发者不知道:用这个工具数据采集效率提升10倍

【MCP Server Chart】25+图表一键生成!阿里工程师偷偷在用的可视化工具,终于开源了


(文:小兵的AI视界)

发表评论