Redis Clone – خادم Redis عالي الأداء مبني بلغة C من الصفر
قمت بتطوير نسخة مصغّرة عالية الأداء من خادم Redis باستخدام لغة C من الصفر، مع التركيز على التحكم الكامل في الذاكرة والتزامن (Memory & Concurrency) لتحقيق أداء مرتفع وزمن استجابة منخفض.
يعتمد المشروع على معمارية قائمة على الأحداث (Event-Driven Architecture) باستخدام epoll لدعم الإدخال/الإخراج غير المتزامن والقابلية العالية للتوسع. قمت بتنفيذ البنى الأساسية لبيانات Redis، بما في ذلك Strings، Lists، Streams، وSorted Sets، مع دعم مجموعة واسعة من الأوامر الأساسية.
يدعم المشروع العمليات الحاجزة (Blocking Operations) مثل BLPOP و XREAD مع دقة زمنية على مستوى الميلي ثانية، بالإضافة إلى دعم Redis Streams مع استخدام Radix Tree لتنفيذ استعلامات النطاق (Range Queries) بكفاءة عالية.
كما قمت بتطبيق آلية المعاملات (Transactions) من خلال دعم أوامر MULTI / EXEC / DISCARD لضمان التنفيذ الذري للأوامر، إلى جانب نظام حفظ البيانات (Persistence) عبر تنفيذ صيغة ثنائية مبسطة من RDB لحفظ لقطات من قاعدة البيانات على القرص.
يشمل المشروع أيضًا دعمًا أساسيًا لميزة النسخ المتماثل (Replication) بين الخادم الرئيسي (Master) والنسخ التابعة (Replica) مع مزامنة الأوامر في الوقت الفعلي.
الأداء (Benchmarks):
متوسط القدرة على المعالجة: حوالي 60,000 طلب في الثانية
استقرار مع أكثر من 200 عميل متزامن
تم اختبار الأوامر الأساسية مثل: PING, SET, GET, INCR, LPUSH, RPUSH, LPOP, RPOP, ZADD