لماذا يعود جدال Redis/Valkey في 2026
في مارس 2024، انتقل Redis Ltd. إلى رخصة BSL (Business Source License) المستبعدة من تعريفات المصدر المفتوح لـ OSI. جاءت الاستجابة فورية: نسّقت Linux Foundation إنشاء Valkey بدعم من Meta وGoogle وAWS وعدة مزودي استضافة كبار. انطلق التوليف من شيفرة Redis 7.2 تحت رخصة BSD. في مايو 2025، عاد Redis إلى رخصة متوافقة مع OSI باعتماد AGPLv3 — إشارة إيجابية، لكن AGPLv3 copyleft قوي: يجب على كل برنامج يدمجه نشر شيفرته المصدرية. في غضون ذلك، أصبح Valkey 9.1 الحزمة الافتراضية على Ubuntu 24.04+ وDebian 13 وFedora 40+.
Redis مقابل Valkey : الفروق الأساسية في 2026
مرّر الجدول أفقيًا
| المعيار | Redis 8 (AGPLv3) | Valkey 9.1 (BSD) |
|---|---|---|
| الرخصة | AGPLv3 — copyleft قوي، تضمين تجاري مقيّد | BSD — مرنة، استخدام تجاري حر |
| الأداء | مرجع تاريخي | +8% عمليات/ثانية، -22% زمن الاستجابة P99، -20% ذاكرة |
| توافق البروتوكول | 100% بروتوكول Redis | 100% بروتوكول Redis — استبدال شفاف |
| دعم التوزيعات | غير مثبَّت بشكل افتراضي | Ubuntu 24.04+ وDebian 13 وFedora 40+ — حزمة أصلية |
| الوحدات | Redis Stack مدفوع (RedisJSON وRediSearch…) | واجهة وحدات متوافقة، النظام البيئي قيد التطوير |
| اعتماد السحابة | AWS ElastiCache لا يزال Redis | GCP Memorystore Valkey متاح، AWS تتجه نحو Valkey |
| الأنسب لـ | المشاريع القائمة التي تعتمد وحدات Redis Stack | المشاريع الجديدة ومزودو الاستضافة والتوزيعات الحديثة |
توافق البروتوكول : RESP2 وRESP3
يُعدّ البروتوكول أكثر المواضيع بحثاً قبل الترحيل. يُطبّق Valkey بروتوكول Redis Serialization Protocol بنسبة 100% في إصداريه.
RESP2 (البروتوكول التاريخي) مدعوم بالكامل. جميع مكتبات العميل الموجودة — ioredis وPredis وredis-py وJedis وStackExchange.Redis — تتواصل مع Valkey دون تعديل في الشيفرة أو الإعدادات.
RESP3 (المُقدَّم مع Redis 6.0) مدعوم أيضاً في Valkey 9.1. يجلب هذا البروتوكول أنواع استجابة غنية — maps وsets ومضاعفات وقيم منطقية وسمات — تتيح للعملاء الحديثين تقليل رحلات التحليل. المكتبات التي تُفعّل RESP3 افتراضياً (ioredis 5+ وredis-py 5+) تعمل دون تعديل مع Valkey.
تنسيقات البيانات : RDB وAOF متوافقان بالكامل
تنسيق ملفات الثبات هو النقطة الحاسمة الأخرى في الترحيل. يقرأ Valkey ويكتب نفس التنسيقات التي يستخدمها Redis دون أي تحويل.
RDB: يدعم Valkey إصدارات RDB 6 و7 و8 و9 و10. يُستورد ملف dump.rdb المُصدَّر من Redis 7.x أو 8.x مباشرةً إلى Valkey 9.1 بوضعه في مجلد dir الخاص بـ Valkey قبل التشغيل.
AOF: تنسيق سجل AOF متطابق بين Redis وValkey. إذا كنت تستخدم ثبات AOF أو الوضع المختلط (aof-use-rdb-preamble yes)، تقرأ Valkey ملفاتك الحالية دون تعديل.
تنسيق البيانات في الذاكرة: هياكل بيانات Valkey — strings وhashes وlists وsets وsorted sets وstreams وHyperLogLog وbitmaps وgeospatial — مطابقة لتلك الموجودة في Redis.
واجهة الأوامر : ما يتطابق وما يختلف
يدعم Valkey كامل مجموعة أوامر Redis. الفئات الرئيسية — strings وhashes وlists وsets وsorted sets وstreams وpub/sub والمعاملات وسكريبتات Lua وإشعارات keyspace والعنقود — تعمل بشكل متطابق.
سكريبتات Lua: يدعم Valkey الأوامر EVAL وEVALSHA وSCRIPT LOAD. تعمل سكريبتات Lua المكتوبة لـ Redis دون تعديل على Valkey. الدالة redis.call() متاحة، كما يتوفر بديل valkey.call() للسكريبتات الجديدة.
عنقود الخوادم: بروتوكول Gossip وأوامر إدارة العنقود (CLUSTER INFO وCLUSTER NODES…) متطابقة.
قوائم التحكم بالوصول ACL: تنسيق القواعد متطابق. يمكن إعادة تحميل ملف aclfile المُصدَّر من Redis في Valkey مباشرةً.
ما يختلف: وحدات Redis Stack الاحتكارية — RedisJSON وRediSearch وRedisTimeSeries وRedisBloom — غير متاحة في Valkey. إذا كانت شيفرتك تستدعي أوامر مثل JSON.SET أو FT.SEARCH، فالترحيل المباشر غير ممكن بعد.
الإعدادات : المعاملات التي يجب التحقق منها عند التبديل
صياغة valkey.conf مطابقة لـ redis.conf. يمكنك نسخ ملف الإعدادات الحالي دون إعادة كتابة. بعض النقاط تستوجب تحققاً خاصاً.
المسارات الافتراضية: يستخدم Valkey المسار /etc/valkey/valkey.conf و/var/lib/valkey/ بدلاً من /etc/redis/. حدّث التوجيهات dir وlogfile وpidfile.
اسم خدمة systemd: الخدمة تُسمى valkey (وليس redis-server). الأوامر هي systemctl start valkey.
TLS: يدعم Valkey TLS على اتصالات العميل بشكل مطابق لـ Redis 6+. إذا فعّلت TLS في Redis، يعمل نفس الإعداد في Valkey دون تعديل عملاءك.
maxmemory وسياسات الإخلاء: سياسات الإخلاء (allkeys-lru وvolatile-lru…) متطابقة. تنتقل سياستك الحالية مباشرةً.
مكتبات العميل : ما لا تحتاج إلى تغييره
هذه إحدى نقاط قوة Valkey: لا تحتاج أي مكتبة عميل إلى تعديل للاتصال بـ Valkey. نظراً لتطابق البروتوكول، لا يعرف العميل ما إذا كان يتحدث إلى Redis أم Valkey.
JavaScript / Node.js: ioredis وnode-redis وredis — كلها تعمل. غيّر المضيف والمنفذ فقط في إعدادات الاتصال.
Python: redis-py وaioredis — متوافقتان. الاتصال Redis(host='valkey-host', port=6379) يعمل دون أي تغيير آخر.
PHP: phpredis وPredis — متوافقتان. لا تغييرات في الشيفرة.
Java: Jedis وLettuce وRedisson — متوافقة.
.NET: StackExchange.Redis — متوافق.
Go: go-redis وrueidis — متوافقان.
إذا كنت تستخدم طبقة تجريد مثل Laravel Cache أو Django django-redis أو Spring Data Redis، فهذه الطبقات تعيد الاتصال بـ Valkey دون تغيير في الشيفرة — فقط سلسلة الاتصال تتغير.
متى تختار Valkey بدلاً من Redis
تفرض Valkey نفسها بطبيعة الحال في سياقات عدة. مزودو الاستضافة والموزعون هم الأكثر تأثراً: تُلزم AGPLv3 الخاصة بـ Redis بنشر شيفرة أي خدمة تدمجه، وهو قيد لا يتوافق مع معظم العروض التجارية. لا يوجد سبب للمشاريع الجديدة للبدء بـ Redis: Valkey هي الحزمة الافتراضية في التوزيعات الحديثة، وأداؤها أفضل ورخصتها بلا قيود. كذلك تستفيد البيئات ذات متطلبات RGPD والسيادة من حوكمة Linux Foundation الأكثر حيادية. أخيراً، إن كنت لا تستخدم وحدات Redis Stack الاحتكارية، فالترحيل شفاف تماماً.
الترحيل من Redis إلى Valkey في 4 خطوات
التحقق من التوافق
شغّل
redis-cli INFO server | grep redis_versionلتحديد إصدارك الحالي. أدرج تبعياتك وتأكد من عدم استخدام أي منها وحدات Redis Stack (RedisJSON وRediSearch وRedisTimeSeries). إذا كان الأمر كذلك، فالترحيل المباشر غير موصى به بعد. تحقق أيضاً من سكريبتات Lua:redis.call()تظل متوافقة.تثبيت Valkey
على Ubuntu 24.04+ وDebian 13، Valkey متاحة في المستودعات الأصلية:
apt install valkey. على Fedora 40+،dnf install valkey. على التوزيعات الأقدم، أضف مستودع Valkey الرسمي قبل التثبيت. تُثبَّت الحزمة أيضاًvalkey-cliوvalkey-benchmarkوvalkey-server.نسخ الإعدادات والبيانات
صياغة الإعدادات متطابقة. انسخ ملفك وحدّث المسارات:
cp /etc/redis/redis.conf /etc/valkey/valkey.conf، ثم عدّلdirوlogfileوpidfileللإشارة إلى/var/lib/valkey/. صدّر بيانات Redis عبر لقطة RDB (redis-cli --rdb /tmp/dump.rdb) ثم ضع الملف في مجلدdirالخاص بـ Valkey. إن كنت تستخدم AOF، انسخ ملف.aofإلى نفس المجلد.تشغيل Valkey والتحقق
شغّل الخدمة (
systemctl start valkey)، ثم تحقق بـvalkey-cli ping— يجب أن تحصل علىPONG. تحقق من وجود بياناتك بـvalkey-cli DBSIZEوقارن مع عدد المفاتيح في نسخة Redis القديمة. اختبر تطبيقك على بعض الطلبات التمثيلية قبل الانقطاع عن Redis. جميع مكتبات العميل (ioredis وPredis وredis-py) متوافقة — غيّر مضيف الاتصال فقط.
يتضمن Valkey أداة valkey-benchmark المطابقة وظيفياً لـ redis-benchmark. قبل أي ترحيل إلى الإنتاج، تحقق من الأداء على أجهزتك بـ valkey-benchmark -n 100000 -q. ترسل هذه الأمر 100,000 طلب وتعرض ملخص عمليات/ثانية لكل نوع من الأوامر. النتيجة المتوقعة: أرقام أعلى من نسخة Redis القديمة على نفس الخادم.
ما لا يتغير في الترحيل من Redis إلى Valkey
- جميع مكتبات العميل (ioredis وredis-py وPredis وJedis وStackExchange.Redis وgo-redis) — لا تغييرات في الشيفرة
- بروتوكول الاتصال: RESP2 وRESP3 مدعومان بالكامل
- ملفات الثبات RDB وAOF — قابلة للقراءة بواسطة Valkey دون تحويل
- صياغة
redis.conf— انسخ الملف وحدّث المسارات - سكريبتات Lua —
redis.call()تعمل، وvalkey.call()متاح إضافةً - قواعد ACL المُصدَّرة من Redis — تُعاد في Valkey مباشرةً
- إعدادات TLS وسياسات إخلاء الذاكرة وإشعارات keyspace
- أوامر
redis-cliالمعتادة —valkey-cliتقبلها جميعاً
وماذا عن قواعد البيانات الأخرى على VPS؟
Valkey ليست سوى قطعة واحدة من بيئة البيانات لديك. إن كنت تستضيف أيضاً قاعدة بيانات علائقية، راجع دليلنا حول MariaDB على VPS : الإعداد والأداء والنسخ. لمحرك البحث full-text، يغطي دليل Elasticsearch على VPS التثبيت وضبط الذاكرة والفهارس في الإنتاج. كل مكوّن يستحق إعداداً ملائماً لحمل العمل لديك — VPS السحابية لدينا تمنحك سيطرة كاملة على بيئتك.