/ 目录 / 演练场 / Redis
● 官方 redis 🔑 需要你的密钥

Redis

作者 redis · redis/mcp-redis

用英文和 Redis 交互 — 检查键、管理缓存、调整过期时间,以及调试 pub/sub,无需记住每个 Redis 命令。

Redis 官方 MCP 通过类型化工具暴露完整的 Redis 命令界面:字符串、哈希、列表、集合、有序集、Stream、pub/sub 和键管理。默认支持单个 Redis URL;适配 Redis OSS、Redis Stack、Redis Cloud 和 AWS ElastiCache/MemoryDB。

为什么要用

核心特性

实时演示

实际使用效果

redis.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "redis": {
      "command": "uvx",
      "args": [
        "mcp-redis"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "redis": {
      "command": "uvx",
      "args": [
        "mcp-redis"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "redis": {
      "command": "uvx",
      "args": [
        "mcp-redis"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "redis": {
      "command": "uvx",
      "args": [
        "mcp-redis"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "redis",
      "command": "uvx",
      "args": [
        "mcp-redis"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "redis": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-redis"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add redis -- uvx mcp-redis

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Redis

调查缓存值过期或丢失的原因

👤 后端工程师排查缓存问题 ⏱ ~10 min beginner

何时使用: 用户说'我更新了个人信息但还显示旧名字' — 可能是缓存失效问题。

前置条件
  • 至少有读权限的 Redis URLREDIS_URL=redis://:pw@host:6379/0
步骤
  1. 找到正确的键
    扫描匹配 user:profile:42* 的键 — 显示每个键的类型和 TTL。✓ 已复制
    → 匹配的键列表
  2. 检查存储的值和过期时间
    对于 user:profile:42,GET 出值并显示 TTL。它是否过期或符合预期?✓ 已复制
    → 值 + TTL + 判断
  3. 主动清除它
    删除该键(和任何相关的列表/集合键)以便应用在下次读取时重新填充。确认删除。✓ 已复制
    → DEL 返回 1 个或更多

结果: 确认修复的缓存,附带过期的键和原因的记录。

注意事项
  • KEYS * 在大型实例上会阻塞服务器 — 始终使用 SCAN(服务器会将 scan 工具转换为非阻塞游标);不要用 KEYS

审计速率限制计数器找滥用模式

👤 平台/滥用审查团队 ⏱ ~15 min intermediate

何时使用: 你怀疑某个客户端突发请求超过速率限制;想看实时计数器和 TTL。

步骤
  1. 列出活跃计数器
    扫描匹配 ratelimit:* 的键并按前缀分组。显示每组的计数。✓ 已复制
    → 前缀直方图
  2. 找到最大消费者
    对于 ratelimit:api:*,返回整数值最高的 20 个键。✓ 已复制
    → 前 20 大违规者
  3. 阻止或重置
    对于滥用键 ratelimit:api:client_abc,DELETE 它使下次调用失败开放 — 并将 client_abc 添加到阻止列表集 abuse:blocked,设置 EXPIRE 86400。✓ 已复制
    → 键已删除 + 阻止列表已更新

结果: 滥用的实时证据加针对性缓解,全部只需几个 Redis 操作。

注意事项
  • 删除速率限制键会立即让客户端再次突发 — 先添加到阻止列表集,再删除计数器 — 不要反过来
搭配使用: sentry

查找并清除消耗内存的孤立会话键

👤 响应 Redis 内存告警的 SRE ⏱ ~20 min intermediate

何时使用: Redis 达到 85% maxmemory,你需要在它驱逐重要键之前知道是什么填满了它。

步骤
  1. 采样大键
    按内存找 50 个最大的键(在 SCAN 过程中对每个采样键使用 MEMORY USAGE)。✓ 已复制
    → 最大键列表及其大小
  2. 按前缀分组并求和
    从该采样中,按第一个冒号分段分组键。求和每组大小以找到最坏的前缀。✓ 已复制
    → 前缀 → 总字节数
  3. 通过 TTL 修复修剪
    对于前缀 session: 中没有 TTL(持久化)的键,将 EXPIRE 设为 86400 秒。计数有多少键得到更新。✓ 已复制
    → 被赋予 TTL 的键数

结果: 内存释放加上根本原因(会话写入时缺少 EXPIRE)以在应用代码中修复。

注意事项
  • MEMORY USAGE 在大哈希/有序集上开销很大 — 通过 SCAN 采样 5-10k 个键,不要扫整个键空间
搭配使用: sentry

检查 Redis Stream 中卡住的消费者组条目

👤 使用 Redis Streams 进行工作队列的工程师 ⏱ ~20 min advanced

何时使用: 消费者组滞后;消息未被确认;吞吐量下降。

步骤
  1. 检查 Stream 和消费者组
    对于 Stream jobs,显示 XLEN、消费者组和每组的待处理计数。✓ 已复制
    → 待处理数字
  2. 查看待处理条目
    对于组 workers,列出前 20 个 PEL 条目 (XPENDING) — 显示空闲时间和消费者。✓ 已复制
    → 卡住的消息 ID
  3. 回收或删除
    XCLAIM idle>300000 将卡住的条目转移给新消费者;或 XACK 它们如果安全的话。运行前与我确认选哪个。✓ 已复制
    → 回收/确认摘要

结果: Stream 解除阻塞,每批都有记录的操作(回收 vs 确认)。

注意事项
  • XACK 而不检查消息会悄悄丢弃工作 — 始终获取消息体 (XRANGE) 并在 XACK 前确认安全删除

调试存储在 Redis 哈希中的功能标志推出

👤 使用 Redis 支持的标志的平台团队 ⏱ ~10 min beginner

何时使用: 某个标志对用户子集的行为不符合预期。

步骤
  1. 检查标志哈希
    HGETALL flags:new-checkout。显示每个字段和值。✓ 已复制
    → 标志定义
  2. 检查覆盖集
    SMEMBERS flags:new-checkout:allowlistflags:new-checkout:blocklist。用户 42 在其中任一个吗?✓ 已复制
    → 成员身份答案
  3. 修复并验证
    SADD 用户 42 到允许列表。重新读取 HGETALL 确认标志状态其他部分未变。✓ 已复制
    → 允许列表已更新;其他字段相同

结果: 标志匹配预期状态,附带经过验证的变更记录。

注意事项
  • 在无协调的情况下写入标志键会破坏另一个管理员的进行中测试 — 在任何写入前在 #platform 宣布;更好的做法是使用记录变更的管理员 UI
搭配使用: sentry

组合

与其他 MCP 搭配,撬动十倍杠杆

redis + sentry

将缓存键与引用它的 Sentry 错误关联

Sentry 事件提到缓存键 user:profile:42 缺失。GET 该键,检查其 TTL,确认是被驱逐还是从未填充。✓ 已复制
redis + postgres

将缓存计数与 Postgres 中的真实来源对比

从 Redis GET stats:active_users:today。在 Postgres 运行 SELECT COUNT(*) FROM users WHERE last_seen > ...。报告偏差。✓ 已复制
redis + filesystem

导出键快照供离线分析

SCAN 每个匹配 session:* 的键,将键+TTL+大小转储到 /tmp/session-audit.jsonl。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
scan pattern: str, count?: int 通过模式发现键(始终使用,不要用 KEYS) free
type key: str 在对未知键进行任何特定数据类型操作前使用 free
get / set / del key, value?, ex? 字符串操作 — 缓存、计数器、锁 free
hgetall / hset / hdel key, field?, value? 存储为哈希的结构化记录 free
sadd / smembers / sismember / srem key, member(s) 阻止列表、允许列表、成员身份 free
zadd / zrange / zrangebyscore key, score+member(s) 排行榜、优先队列 free
xadd / xrange / xread / xpending / xclaim / xack stream ops Redis Streams 上的工作队列 free
ttl / expire / persist key, seconds? 检查或设置过期时间 free
info / memory_usage section? / key 容量和性能检查 free

成本与限制

运行它的成本

API 配额
受 Redis 命令秒速限制(你的实例,不是 MCP)的限制
每次调用 Token 数
大多数命令 <200 token;HGETALL/LRANGE 随数据大小扩展
费用
对现有 Redis 免费。Redis Cloud 免费层 30MB。
提示
始终向 SCAN 传递现实的 count(默认 10 在规模上很慢;1000 是好的批次)。

安全

权限、密钥、影响范围

最小权限: 具有 `~pattern` 和 `+@read` 的 ACL 用户用于只读工作
凭据存储: 环境中的 REDIS_URL(包括密码);优先使用 TLS 和 rediss://
数据出站: 直接 TCP 到你的 Redis 端点;无第三方代理
切勿授予: FLUSHALL FLUSHDB CONFIG SET SHUTDOWN

故障排查

常见错误与修复

NOAUTH 需要身份验证

REDIS_URL 中缺少密码。使用 redis://:password@host:6379

验证: redis-cli -u $REDIS_URL PING
MOVED 1234 other-host:6379 (Redis 集群)

普通 MCP 使用独立客户端。指向集群感知代理或使用非集群 Redis 端点。

ERR 未知命令 'JSON.GET'

那是 Redis Stack 专有的。要么升级到 Redis Stack / Redis Cloud,要么存储为哈希。

验证: redis-cli MODULE LIST
OOM 当已用内存 > 'maxmemory' 时不允许命令

Redis 满了。检查 MEMORY STATS,驱逐或扩展实例,并为未来的写入设置 TTL。

验证: redis-cli INFO memory

替代方案

Redis 对比其他方案

替代方案何时用它替代权衡
Memcached MCP你有纯 KV 缓存需求,无数据结构接口小得多;没有列表/集合/Stream
DragonflyDB MCPRedis 兼容但多线程较新;并非每个模块都能工作

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills