مستخدم ضيف
انضم إلينا اليوم!
تسجيل الدخول التسجيل
الرئيسية
الدورات
المدونة
Veya ai chat
المميزات
حول
الاتصال
الخصوصية
الشروط
الإعدادات
الإنجليزية العربية
الدعم
مساعدة
Lavidya - AI Learning Platform
  • الرئيسية
  • الدورات
  • المدونة
  • Veya ai chat
  • المميزات
  • حول
  • الاتصال
  • الخصوصية
  • الشروط
    • الإنجليزية
    • العربية

مقال المدونة

  • الرئيسية
  • الرئيسية
  • المدونة
  • Last Seen مش Feature بسيط: إزا...

Last Seen مش Feature بسيط: إزاي تصممه صح لملايين المستخدمين

يا وحوش الـ System Design! تعالوا نتكلم عن "Last Seen" في الشات اب

يا صاحبي، لو كنت بتخطط لتعمل شات اب زي WhatsApp أو Telegram وتقدر تشيل ملايين المستخدمين، خليني أقولك حاجة مهمة جداً. الفكرة هنا إن حوار "Last Seen" ده فيه تفاصيل بتفرق بين الـ Junior والـ Senior. يعني، لو بتحاول تفهمه صح، هتكون قد الإحتراف.

أوعى تحدث الداتابيز كل ثانية!

أنا قلت لك، أوعى تحدث الداتابيز مع كل حركة للمستخدم! 🛑 دي أكبر غلطة. تخيل 10 مليون مستخدم "Active"، يعني ملايين التحديثات في الدقيقة! الداتابيز بتاعتك هتموت (Bottleneck) والسيرفر هيقع منك. الـ Write Operations تقيلة، خفف منها على قد ما تقدر. ليه كده؟ لأنك هتسيب النظام ينهار تحت الضغط، وده شيء مضمون!

الحل السحري: Redis!

طيب، الحل السحري هو الـ Redis! 🚀 قسم اللعبة لجزئين: Real-time و Storage. للـ "Online Status" استخدم Redis بـ Expiration Time (مثلاً 120 ثانية) بـ command زي SETEX. طول ما المستخدم بيتحرك، جدد الوقت. لو قفل؟ الـ Key هيتمسح لوحده (Expire). سحر! بص يا سيدي، دي طريقة ذكية لتجنب الضغط الزائد على الداتابيز.

تاريخ "Last Seen"؟

طب وتاريخ "Last Seen"؟ 🤔 أكيد مش هنرميه. هنحدث الداتابيز بس بذكاء. مش كل ثانية، لأ.. كل 5 دقايق مثلاً. اعمل check بسيط: WHERE last_seen < NOW() - 5 MIN. الحركة دي هتنزل الـ Load من 160 ألف write في الثانية لـ 30 ألف بس! فرق رهيب في الأداء. إيه رأيك؟ ممكن تقول انها فكرة عجيبة؟ والله العظيم، دي طريقة ذكية جداً.

نظام "Check Redis First"

لو جيت تعرض الـ Status، امشي بنظام الـ "Check Redis First". 🕵️‍♂️ بص في Redis الأول: لقيت الـ Key؟ يبقى اكتب "Online Now". ملقتهوش؟ روح هات الـ Timestamp من الداتابيز واحسب الفرق واعرض "Last seen 5 mins ago". كده وفرت Hits كتير على الداتابيز. الوالله، دي طريقة ذكية تجعل النظام يشتغل بشكل أسرع وأكثر كفاءة.

استخدم الـ "Batch Updates"

عايز تبقى "Pro" بجد؟ استخدم الـ "Batch Updates". 😎 بدل ما تبعت Update لكل مستخدم لوحده، جمعهم في "Background Job" وارميهم للداتابيز "Bulk Update" مرة واحدة كل دقيقة. كده الداتابيز تتنفس وأنت تاخد Performance عالي جداً. متخيلش ده حصل معاي؟ صحيح، دي طريقة فعالة جداً لتقليل الضغط على الداتابيز.

الـ "User Experience" والخصوصية أهم حاجة!

الـ "User Experience" والخصوصية أهم حاجة! 🛡️ لو المستخدم اختار "Don't show last seen"، وفر مجهودك ومتعملش Tracking أصلاً. كمان استخدم الـ "Caching" للقيم اللي بتيجي من الداتابيز لمدة دقيقة، عشان لو فتحت البروفايل كذا مرة ورا بعض، منرحش للداتابيز كل مرة. دي طريقة ذكية تحسن تجربة المستخدم وتضمن الخصوصية.

ده التريكات اللي بتخلي الـ App بتاعك يطير ✈️ وميهنجش مهما عدد المستخدمين زاد. عاش يا أبطال! 💪

معلومات المقال

Last Seen مش Feature بسيط: إزاي تصممه صح لملايين المستخدمين
  • الفئة: علوم الحاسوب
  • منشور: Jan 25, 2026
  • وقت القراءة: 1 دقيقة
  • الكاتب: Kamal

هل كان هذا مفيداً؟

مشاركة المقال

شارك هذا المقال مع الآخرين

مقالات ذات صلة

خلف الكواليس: ازاي الـ Routing شغال في PHP Native
خلف الكواليس: ازاي الـ Routing شغال في PHP Native

Feb 03, 2026

إزاي المنصات الكبيرة بتحمي فيديوهاتها؟
إزاي المنصات الكبيرة بتحمي فيديوهاتها؟

Jan 26, 2026

إزاي تتحكم في استخدام الـ Guest Users حتى لو بيستخدموا VPN أو Incognito
إزاي تتحكم في استخدام الـ Guest Users حتى لو بيستخدموا VPN أ...

Jan 26, 2026

Lavidya - AI Learning Platform

"لافيديا جعلت التعلم سهلاً وممتعاً. ذكاء اصطناعي يفهم التعليم حقاً."

حقوق النشر © 2026 Lavidya. جميع الحقوق محفوظة.