# Redis City: نموذج ثلاثي الأبعاد مجاني في المتصفح يتتبع الأمر داخل Redis حتى الذاكرة والقرص

> **المغزى:** رؤية الـ allocator وهو يعمل تفسر لماذا يستهلك Redis ذاكرة أكبر من حجم البيانات دون تسرب، ولماذا يحدد إعداد الحفظ ما يضيع عند الانهيار.

- المصدر: المغزى (https://almaghza.com/a/2026-09-15-redis-city-3d-visualization/)
- التاريخ: 4 ربيع الآخر - 15 سبتمبر 2026 (2026-09-15)
- القسم: برمجيات
- الوسوم: Redis، قواعد البيانات

نُشر مشروع Redis City على Hacker News في 12 سبتمبر 2026 ضمن فئة Show HN، ووصل إلى الصدارة بـ 140 نقطة. وهو نموذج تفاعلي ثلاثي الأبعاد لما يحدث داخل Redis، يعمل في المتصفح وحده، دون تسجيل أو تنزيل.

يكتب المستخدم أمرًا، ثم يتابعه خطوة بخطوة: تحليل الأمر، ثم البحث عن المفتاح، ثم هيكل البيانات الذي يُخزَّن فيه، ثم الـ allocator، ثم صفحات الذاكرة، وأخيرًا ملفات RDB وAOF على القرص.

## الذاكرة التي تبدو كتسرب

أهم محطة في هذا المسار هي الـ allocator، أي الجزء الذي يوزّع الذاكرة. يفاجأ كثيرون بأن Redis يستهلك ذاكرة أكبر من حجم البيانات التي وضعوها فيه، فيفتحون بلاغًا عن memory leak، ولا يكون هناك تسرب. السبب أن الـ allocator يوزّع الذاكرة على أحجام جاهزة، فالقيمة التي حجمها 33 byte قد تشغل خانة أكبر منها. والفرق الصغير في كل مفتاح يتراكم حين يصبح عدد المفاتيح بالملايين. ويشرح توثيق Redis هذه الظاهرة ضمن حديثه عن تحسين استهلاك الذاكرة.

وفي نهاية المسار يظهر الفرق بين طريقتي الحفظ. RDB تحفظ صورة كاملة من البيانات كل فترة، بينما AOF تسجل كل أمر بعد الآخر. وهذا الفرق هو نفسه الفرق بين خسارة آخر دقائق من البيانات عند الانهيار وعدم خسارة شيء تقريبًا. وهو إعداد يُترك في حالات كثيرة على قيمته الافتراضية، ولا تظهر أهميته إلا يوم يتعطل الخادم.

قيمة الأداة أنها تحوّل هذين المفهومين، اللذين يُشرحان عادة في نصوص طويلة، إلى حركة مرئية يمكن تتبعها. وقد يجعلها ذلك مدخلًا سريعًا لمن يبدأ تعلم Redis، قبل الانتقال إلى التوثيق الرسمي.

## المصادر

- [Redis City في المتصفح](https://poltora.dev/redis)
- [توثيق Redis عن تحسين استهلاك الذاكرة](https://redis.io/docs/latest/operate/oss_and_stack/management/optimization/memory-optimization/)
- [توثيق Redis عن الحفظ والفرق بين RDB وAOF](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/)
