سؤال

أنا مهتم باستخدام Node.js كخادم مقبس للاتصال القائم على الدفق مع عشرات الآلاف من العملاء. سيقوم العملاء بإرسال الأصوات للحصول على أجزاء معينة من المحتوى وتلقي تحديثات قريبة من الوقت لوقوع تصويت مجمعة من الخادم.

يحتاج مخزن البيانات إلى الدعم:

  1. تخزين الأصوات
  2. تلخيص الأصوات في وقت قريب
  3. منع أصوات متعددة خلال فترة زمنية تعسفية (على سبيل المثال ، يمكن للعملاء التصويت مرة واحدة فقط للحصول على محتوى كل دقيقة واحدة)

شيء يحتوي بالفعل على مكتبات عملاء لـ Node.js.

هل كانت مفيدة؟

المحلول

أنا أوصي بشدة ريديس. إنه متجر مفتاح/قيمة مع عمليات تعيين وقائمة. كما يدعم العمليات الذرية للعدادات. هناك عميل لـ Redis لـ Node.js متاح على جيثب. إليكم كيف سأقوم بتنفيذ ميزاتك:

تخزين الأصوات

INCR votes:option:<option>

تلخيص الأصوات

MGET votes:option:<option1> votes:option:<option2> ... votes:option:<optionN>

منع أصوات متعددة (قم بإنشاء مفتاح قفل انتهاء الصلاحية لعميل IP)

EXPIRE lock:<encoded ip> 60
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top