قوّة Redis الحقيقية ليست في كونه مفتاح-قيمة فحسب، بل في أنواع البيانات الغنيّة التي تجعل القيمة نفسها بنيةً كاملة. تبني هذه الصفحة على ما هو Redis؟، وتعرّفك على الأنواع الأساسية ومتى تختار كلًّا منها.
Strings (النصوص)
أبسط نوع: قيمة نصّية (أو رقمية) مرتبطة بمفتاح. تُستخدم للتخزين المؤقت لقيمة مفردة، أو كعدّاد.
SET user:1:name "Sara"
GET user:1:name # => "Sara"
INCR page:views # عدّاد يزداد بواحد ذرّيًّا
متى تستخدمه؟ قيمة مفردة، أو عدّاد (مشاهدات، محاولات دخول).
Lists (القوائم)
قائمة مرتّبة من العناصر، تُضاف من الطرفين بكفاءة. مناسبة للطوابير وسجلّات النشاط الأخيرة.
LPUSH tasks "task-a" # إضافة من اليسار
LPUSH tasks "task-b"
LRANGE tasks 0 -1 # => "task-b", "task-a"
متى تستخدمها؟ طابور مهامّ، أو أحدث N عنصرًا (آخر الأنشطة).
Sets (المجموعات)
مجموعة من العناصر الفريدة وغير المرتّبة. تدعم عمليات مثل التقاطع والاتّحاد.
SADD online:users "u1"
SADD online:users "u1" # مُتجاهَل؛ العناصر فريدة
SMEMBERS online:users # => "u1"
متى تستخدمها؟ حين تهمّك الفرادة (وسوم فريدة، مستخدمون متّصلون) أو علاقات المجموعات.
Hashes (الجداول)
خريطة من حقول وقيم تحت مفتاح واحد — مثالية لتمثيل كائن (مستخدم مثلًا) بحقوله.
HSET user:1 name "Sara" age "30"
HGET user:1 name # => "Sara"
HGETALL user:1 # => name "Sara", age "30"
متى تستخدمها؟ تخزين كائن ذي حقول متعدّدة دون سلسلته إلى نصّ واحد.
لمحة: Sorted Sets وأنواع أخرى
إضافةً إلى الأربعة الأساسية، يقدّم Redis المجموعات المرتّبة (Sorted Sets) التي ترتّب العناصر حسب «درجة» — وهي الأساس المثالي للوحات الصدارة — وأنواعًا متقدّمة أخرى مثل Streams. سنتناولها في سياقها العملي لاحقًا.
كيف تختار النوع المناسب؟
| احتاجك | النوع |
|---|---|
| قيمة مفردة أو عدّاد | String |
| ترتيب/طابور بالإضافة من الأطراف | List |
| عناصر فريدة أو عمليات مجموعات | Set |
| كائن بحقول | Hash |
| ترتيب حسب درجة (لوحة صدارة) | Sorted Set |
ℹ️ الأوامر أعلاه قياسية في Redis؛ جرّبها في بيئة Redis محلّية لترى النتائج مباشرةً.
الخطوات التالية
بعد إتقان الأنواع، ستنتقل إلى: تثبيت Redis وتشغيله، ثمّ ضبط مدد انتهاء الصلاحية على المفاتيح، واستخدام Redis للتخزين المؤقت وكمخزن جلسات. راجع الأساس في ما هو Redis؟.