ذاكرة التخزين المؤقت LRU من الصفر

coding · Cursor · free

قم بتنفيذ ذاكرة تخزين مؤقتة من نوع LRU بلغة [LANGUAGE] مع مراعاة متطلبات مستوى الإنتاج، وليس كإجابة في مقابلة برمجة. المتطلبات: السعة: [N] إدخالًا أو [M] بايت (أيهما أحتاج؟) آمن للخيوط؟ [نعم/لا — إذا كانت الإجابة «نعم»، فصف مستوى التزامن] دعم TTL: [نعم/لا — متدرج مقابل مطلق] نوع القيمة: [ثابت / عام] المقاييس المطلوبة: عدد مرات الوصول الناجحة، عدد مرات الفشل، عمليات الإزالة، الحجم النتائج المطلوبة: 1. البنية الأساسية — خريطة التجزئة + قائمة مزدوجة الارتباط (أو ما يعادلها وفقًا لأسلوب اللغة) 2. get(key) — O(1)، تنتقل إلى الرأس، تراعي TTL 3. set(key, value, ttl?) — O(1)، تطرد LRU عند بلوغ السعة، تتعامل مع المفاتيح المكررة 4. delete(key) — O(1) 5. التزامن: اختر خيارًا واحدًا — موتكس خشن، أقفال مخططة، أو بدون أقفال — مع تبرير اختيارك وفقًا لنسبة القراءة/الكتابة الخاصة بي 6. خطاف الإخلاء حتى يتمكن المستدعون من الاستجابة (إغلاق مقابض الملفات، التسجيل في السجل) 7. طريقة إحصائية تُرجع المقاييس 8. اختبارات تغطي: الإزالة عند بلوغ السعة، انتهاء صلاحية TTL، الترقية عند القراءة، الوصول المتزامن إن تم تمكينه أنماط سيئة يجب رفضها: تسلسل JSON لمفاتيح ذاكرة التخزين المؤقت، المراجع…

#data-structures #caching #implementation