/ الدليل / الملعب / Redis
● رسمي redis 🔑 يتطلب مفتاحك

Redis

بواسطة redis · redis/mcp-redis

تحدث مع Redis باللغة الإنجليزية — افحص المفاتيح، أدر الذاكرة المؤقتة، اضبط انتهاء الصلاحية، وصحح pub/sub دون الحاجة لحفظ كل أوامر Redis.

يكشف MCP الرسمي من Redis عن سطح أوامر Redis الكامل من خلال أدوات مكتوبة بأنواع: strings و hashes و lists و sets و sorted sets و streams و pub/sub وإدارة المفاتيح. يفترض افتراضياً عنوان Redis URL واحد؛ ويعمل مع OSS Redis و 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 نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

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

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "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 URL بإمكانية القراءة على الأقلREDIS_URL=redis://:pw@host:6379/0
الخطوات
  1. ابحث عن المفتاح الصحيح
    امسح المفاتيح التي تطابق user:profile:42* — اعرض كل واحد مع نوعه و TTL.✓ تم النسخ
    → قائمة المفاتيح المطابقة
  2. افحص القيمة المخزنة وانتهاء الصلاحية
    بالنسبة إلى user:profile:42، احصل على القيمة واعرض TTL. هل هي قديمة مقابل ما هو متوقع؟✓ تم النسخ
    → القيمة + TTL + الحكم
  3. احذفها عن قصد
    احذف هذا المفتاح (وأي مفاتيح قائمة/مجموعة ذات صلة) حتى يعيد التطبيق الملء عند القراءة التالية. أكد الحذف.✓ تم النسخ
    → DEL أرجعت 1 أو أكثر

النتيجة: ذاكرة مؤقتة مؤكدة الإصلاح مع تتبع ما كان قديماً ولماذا.

المزالق
  • KEYS * على نسخة كبيرة توقف الخادم — استخدم دائماً SCAN (الخادم يترجم أدوات scan إلى مؤشرات غير حجزية)؛ أبداً KEYS

تدقيق عدادات حد المعدل للأنماط المسيئة

👤 فريق المنصة / فريق الإساءة ⏱ ~15 min intermediate

متى تستخدمه: تشك في أن عميل ينفجر ضد معدل التحديد الخاص بك؛ تريد رؤية العدادات الحية و TTLs.

الخطوات
  1. اعرض قائمة بالعدادات النشطة
    امسح عن مفاتيح تطابق ratelimit:* وجمعها حسب البادئة. اعرض العدد لكل مجموعة.✓ تم النسخ
    → رسم بياني للبادئة
  2. ابحث عن أكبر المستهلكين
    بالنسبة إلى ratelimit:api:*، أرجع أفضل 20 مفتاح بأعلى قيمة صحيحة.✓ تم النسخ
    → أفضل 20 منتهكاً
  3. احظر أو أعد تعيين
    بالنسبة إلى المفتاح المسيء ratelimit:api:client_abc، احذفه حتى تفشل الاستدعاء التالي بشكل مفتوح — وأضف client_abc إلى مجموعة القائمة السوداء abuse:blocked مع EXPIRE 86400.✓ تم النسخ
    → المفتاح محذوف + تم تحديث القائمة السوداء

النتيجة: دليل حي على الإساءة بالإضافة إلى تخفيف موجه، كل ذلك في عمليات Redis قليلة.

المزالق
  • حذف مفتاح حد المعدل يسمح للعميل بالانفجار مرة أخرى على الفور — أضف إلى مجموعة القائمة السوداء أولاً، ثم احذف العداد — وليس العكس
اجمعها مع: sentry

ابحث عن واحذف مفاتيح الجلسة اليتيمة التي تستهلك الذاكرة

👤 مهندسو الموثوقية الموقعية الذين يستجيبون لتنبيه ذاكرة Redis ⏱ ~20 min intermediate

متى تستخدمه: Redis في 85٪ من maxmemory وتحتاج إلى معرفة ما يملأه قبل أن يطرد المفاتيح المهمة.

الخطوات
  1. نموذج من المفاتيح الكبيرة
    ابحث عن أكبر 50 مفاتيح حسب الذاكرة (استخدم MEMORY USAGE لكل مفتاح نموذجي عبر تمرير SCAN).✓ تم النسخ
    → قائمة أكبر المفاتيح مع الأحجام
  2. جمع حسب البادئة والمجموع
    من هذا النموذج، جمع المفاتيح حسب أول جزء بفاصلة. جمع الأحجام لكل مجموعة للعثور على أسوأ بادئة.✓ تم النسخ
    → البادئة → إجمالي البايتات
  3. قص مع إصلاح TTL
    بالنسبة إلى مفاتيح البادئة session: بدون TTL (دائمة)، اضبط EXPIRE على 86400 ثانية. احسب عدد المفاتيح المحدثة.✓ تم النسخ
    → عدد المفاتيح التي تم إعطاؤها TTL

النتيجة: تخفيف الذاكرة بالإضافة إلى السبب الجذري (EXPIRE المفقود في عمليات الكتابة للجلسة) لإصلاحه في كود التطبيق.

المزالق
  • MEMORY USAGE مكلف على hashes/zsets الكبيرة — نموذج 5-10k مفاتيح عبر SCAN، وليس keyspace الكامل
اجمعها مع: sentry

افحص Redis Stream عن إدخالات مجموعة المستهلك العالقة

👤 المهندسون الذين يستخدمون Redis Streams لطوابير العمل ⏱ ~20 min advanced

متى تستخدمه: مجموعة المستهلك متأخرة؛ الرسائل لا يتم الاعتراف بها؛ انخفضت الإنتاجية.

الخطوات
  1. تحقق من الدفق والمجموعات
    بالنسبة إلى الدفق jobs، اعرض XLEN ومجموعات المستهلك وعدد المعلقة لكل مجموعة.✓ تم النسخ
    → أرقام المتأخرات
  2. انظر إلى الإدخالات المعلقة
    بالنسبة إلى المجموعة workers، اعرض قائمة أفضل 20 إدخال PEL (XPENDING) — اعرض وقت الخمول والمستهلك.✓ تم النسخ
    → معرفات الرسائل العالقة
  3. استعد أو احذف
    XCLAIM idle>300000 الإدخالات العالقة إلى مستهلك جديد؛ أو XACK إذا كانت آمنة للحذف. أكد معي أيها قبل التشغيل.✓ تم النسخ
    → ملخص Reclaim/ack

النتيجة: الدفق غير محجوب مع إجراء موثق (claim مقابل ack) لكل دفعة.

المزالق
  • XACK بدون فحص الرسالة يمكن أن يسقط العمل بصمت — احصل دائماً على نص الرسالة (XRANGE) وأكد أنه من الآمن الحذف قبل XACK

صحح نشر علم الميزة المخزن في hashes Redis

👤 فرق المنصة التي تستخدم الأعلام المدعومة بـ Redis ⏱ ~10 min beginner

متى تستخدمه: العلم لا يتصرف كما هو متوقع لمجموعة فرعية من المستخدمين.

الخطوات
  1. افحص hash العلم
    HGETALL flags:new-checkout. اعرض كل حقل وقيمة.✓ تم النسخ
    → تعريف العلم
  2. تحقق من مجموعة التجاوز
    SMEMBERS flags:new-checkout:allowlist و flags:new-checkout:blocklist. هل المستخدم 42 في أي منهما؟✓ تم النسخ
    → إجابات العضوية
  3. أصلح وتحقق
    SADD المستخدم 42 إلى القائمة البيضاء. أعد قراءة HGETALL للتأكد من أن حالة العلم لم تتغير.✓ تم النسخ
    → تم تحديث القائمة البيضاء؛ الحقول الأخرى متطابقة

النتيجة: العلم يطابق الحالة المقصودة، مع سجل تغيير مُتحقق منه.

المزالق
  • الكتابة إلى مفاتيح العلم دون تنسيق تكسر الاختبار الجاري لمسؤول آخر — أعلن في #platform قبل أي كتابة؛ أفضل، استخدم واجهة مسؤول تسجل التغييرات
اجمعها مع: sentry

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

redis + sentry

ربط مفتاح ذاكرة مؤقتة بخطأ Sentry الذي أشار إليه

حدث Sentry يذكر مفتاح الذاكرة المؤقتة user:profile:42 كمفقود. احصل على المفتاح وتحقق من TTL وأكد ما إذا تم إطفاؤه أم لم يتم ملؤه أبداً.✓ تم النسخ
redis + postgres

مقارنة الأعداد المخزنة مؤقتاً مع مصدر الحقيقة في Postgres

احصل على stats:active_users:today من Redis. قم بتشغيل SELECT COUNT(*) FROM users WHERE last_seen > ... في Postgres. أبلغ عن الانجراف.✓ تم النسخ
redis + filesystem

تصدير لقطة من المفاتيح للتحليل دون الاتصال

امسح كل مفتاح يطابق session:*، وصرّف key+TTL+size إلى /tmp/session-audit.jsonl.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
scan pattern: str, count?: int اكتشف المفاتيح حسب النمط (دائماً، أبداً لا تستخدم KEYS) free
type key: str قبل أي عملية خاصة بنوع البيانات على مفتاح غير معروف free
get / set / del key, value?, ex? عمليات String — caches و counters و locks free
hgetall / hset / hdel key, field?, value? السجلات المنظمة المخزنة في hashes 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 command-per-second (نسختك، وليس MCP)
الرموز لكل استدعاء
معظم الأوامر <200 tokens؛ HGETALL/LRANGE تتسع مع حجم البيانات
التكلفة المالية
مجاني ضد Redis الموجود لديك. طبقة مجانية Redis Cloud 30MB.
نصيحة
مرر دائماً count واقعياً إلى SCAN (الافتراضي 10 بطيء على النطاق؛ 1000 دفعة جيدة).

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: مستخدم ACL مع `~pattern` و `+@read` للعمل بقراءة فقط
تخزين بيانات الاعتماد: REDIS_URL (تتضمن كلمة المرور) في env؛ فضّل TLS مع rediss://
نقل البيانات الخارجي: TCP مباشر إلى نقطة نهاية Redis الخاصة بك؛ بدون وكيل طرف ثالث
لا تمنح أبدًا: FLUSHALL FLUSHDB CONFIG SET SHUTDOWN

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

NOAUTH Authentication required

كلمة المرور مفقودة من REDIS_URL. استخدم redis://:password@host:6379.

تحقق: redis-cli -u $REDIS_URL PING
MOVED 1234 other-host:6379 (Redis Cluster)

يستخدم MCP العادي عميل نفردي. أشر إلى وكيل يدرك المجموعة أو استخدم نقطة نهاية Redis بدون مجموعة.

ERR unknown command 'JSON.GET'

هذا يعود فقط إلى Redis Stack. إما الترقية إلى Redis Stack / Redis Cloud أو التخزين في hashes.

تحقق: redis-cli MODULE LIST
OOM command not allowed when used memory > 'maxmemory'

Redis ممتلئ. تحقق من MEMORY STATS واطرد أو نمّي النسخة واضبط TTLs على الكتابات المستقبلية.

تحقق: redis-cli INFO memory

البدائل

Redis مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Memcached MCPلديك احتياجات ذاكرة مؤقتة KV عادية بدون بنى بياناتسطح أصغر بكثير؛ لا توجد lists/sets/streams
DragonflyDB MCPمتوافق مع Redis لكن متعدد الخيوطأحدث؛ ليس كل وحدة تعمل

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills