بدء استخدام Redis السريع

بعد تثبيت Redis، دعنا نبدأ بسرعة ونتعلم عمليات Redis الأساسية.

بدء خادم Redis

بدء التشغيل في المقدمة

أبسط طريقة لبدء Redis — يعمل في المقدمة ويسجل مباشرة في الطرفية.

BASH
redis-server

المخرجات:

TEXT
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._
  _.-`` .-`` .-```.  ```.-''  ''-._
.-`` .-`` .-`````-..-'''.-''      ''-._
( '      .       ''-.             ``.
|`.    `-.   `-.    `-.  `-.        `-.)
|  `-.    `-.    `-.    `-.    `-.    `'
 `-.   `-.    `-.    `-.    `-.    `-.    _
     `-.    `-.    `-.    `-.    `-.  .-'
         `-.    `-.    `-.    `-.  .-'
             `-.    `-.    `-.  .-'
                 `-.    `-.  .-'
                     `-.  .-'
                         `-

Redis 7.0.11 (00000000/0) 64 bit
Running in standalone mode
Port: 6379
PID: 12345
Ready to accept connections
💡 نصيحة: اضغط Ctrl+C لإيقاف خادم Redis.

بدء التشغيل في الخلفية

يُوصى بالتشغيل في الخلفية للبيئات الإنتاجية.

BASH
# الطريقة 1: استخدام معامل daemonize
redis-server --daemonize yes

# الطريقة 2: تعديل ملف الإعدادات
# عدّل /etc/redis/redis.conf
daemonize yes
# ثم ابدأ
redis-server /etc/redis/redis.conf

بدء التشغيل على منفذ محدد

BASH
# استخدام المنفذ 6380
redis-server --port 6380

التحقق مما إذا كان Redis قيد التشغيل

BASH
# Linux
ps aux | grep redis-server

# أو استخدام redis-cli
redis-cli ping
# يُرجع PONG إذا كان Redis قيد التشغيل

الاتصال بـ Redis

استخدام redis-cli

redis-cli هو عميل سطر الأوامر المدمج في Redis.

BASH
# الاتصال بـ Redis المحلي (الافتراضي 127.0.0.1:6379)
redis-cli

# بعد الاتصال، يتغير الموجه إلى:
127.0.0.1:6379>

تحديد المضيف والمنفذ

BASH
# الاتصال بمضيف ومنفذ محددين
redis-cli -h 192.168.1.100 -p 6379

# الاتصال بمنفذ محلي مختلف
redis-cli -p 6380

الاتصال بكلمة مرور

BASH
# الطريقة 1: معامل سطر الأوامر
redis-cli -a yourpassword

# الطريقة 2: المصادقة بعد الاتصال
redis-cli
 AUTH yourpassword
OK
⚠️ تحذير أمني: استخدام المعامل -a يعرض كلمة المرور في سجل الأوامر. للإنتاج، استخدم أمر AUTH أو ملف الإعدادات بدلاً من ذلك.

الاتصال عبر مقبس Unix

BASH
redis-cli -s /tmp/redis.sock

الخروج من redis-cli

BASH
# الخروج من الاتصال
 exit
# أو
 quit
# أو اضغط Ctrl+D

الأمر الأول: PING

يختبر أمر PING ما إذا كان الاتصال يعمل، مشابهًا لأمر ping الشبكي.

مثال:اختبار الاتصال

BASH
PING
▶ جرّب الكود

إذا كان Redis يعمل بشكل صحيح، فإنه يُرجع PONG.

PING مع رسالة

REDIS
 PING "Hello"
"Hello"

يمكن لـ PING حمل رسالة، ويعيدها Redis كما هي.

💡 حالة الاستخدام: يُستخدم PING عادةً لفحوصات الصحة واختبار الاتصال وقياس زمن انتقال الشبكة.

الأوامر الأساسية: SET و GET

SET و GET هما أكثر الأوامر استخدامًا لتخزين واسترداد بيانات السلاسل.

SET: تخزين البيانات

يقوم أمر SET بتعيين زوج مفتاح-قيمة.

مثال:SET أساسي

BASH
SET name "Redis Tutorial"
GET name
▶ جرّب الكود

مثال:مع انتهاء الصلاحية

BASH
# تعيين مفتاح ينتهي صلاحيته بعد 10 ثوانٍ
SET temp "temporary" EX 10
GET temp

# أو استخدام PX للميلي ثانية
SET temp2 "temp" PX 5000
GET temp2
▶ جرّب الكود

مثال:التعيين فقط إذا كان المفتاح غير موجود

BASH
# NX: التعيين فقط إذا كان المفتاح غير موجود
SET name "New Name" NX

# XX: التعيين فقط إذا كان المفتاح موجودًا
SET name "Updated Name" XX
GET name
▶ جرّب الكود

بناء جملة أمر SET الكامل

SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT timestamp|PXAT timestamp]
المعامل الوصف
NX التعيين فقط إذا كان المفتاح غير موجود
XX التعيين فقط إذا كان المفتاح موجودًا
GET إرجاع القيمة القديمة (Redis 6.2+)
EX seconds تعيين انتهاء الصلاحية بالثواني
PX milliseconds تعيين انتهاء الصلاحية بالميلي ثانية
EXAT timestamp تعيين انتهاء الصلاحية بطابع زمني Unix (ثوانٍ)
PXAT timestamp تعيين انتهاء الصلاحية بطابع زمني Unix (ميلي ثانية)

GET: قراءة البيانات

يسترجع أمر GET قيمة المفتاح.

مثال:GET أساسي

BASH
GET name

# المفتاح غير موجود، يُرجع nil
GET notexist
▶ جرّب الكود

مثال:GETSET (الحصول على القيمة القديمة، تعيين قيمة جديدة)

BASH
GETSET name "New Value"
GET name
▶ جرّب الكود

أوامر أساسية أخرى

DEL: حذف مفتاح

REDIS
 SET temp "delete me"
OK

 DEL temp
(integer) 1  # الحذف ناجح، يُرجع عدد المفاتيح المحذوفة

 DEL temp
(integer) 0  # المفتاح غير موجود، تم حذف 0

EXISTS: التحقق من وجود المفتاح

REDIS
 SET name "Redis"
OK

 EXISTS name
(integer) 1  # موجود

 EXISTS notexist
(integer) 0  # غير موجود

KEYS: البحث عن المفاتيح

REDIS
# تعيين بعض بيانات الاختبار
 SET user:1 "Alice"
 SET user:2 "Bob"
 SET product:1 "iPhone"

# البحث عن جميع المفاتيح (استخدم بحذر!)
 KEYS *
1) "user:1"
2) "user:2"
3) "product:1"
4) "name"

# البحث عن المفاتيح المطابقة لنمط
 KEYS user:*
1) "user:1"
2) "user:2"

 KEYS *:1
1) "user:1"
2) "product:1"
⚠️ تحذير: أمر KEYS يمسح قاعدة البيانات بأكملها. إنه بطيء جدًا مع مجموعات البيانات الكبيرة ويجب تجنبه في الإنتاج! استخدم SCAN بدلاً من ذلك.

FLUSHDB: مسح قاعدة البيانات الحالية

REDIS
# مسح جميع البيانات في قاعدة البيانات الحالية (خطير!)
 FLUSHDB
OK
⚠️ خطر: FLUSHDB تحذف جميع البيانات. استخدم بحذر شديد في الإنتاج!

DBSIZE: عد المفاتيح

REDIS
 DBSIZE
(integer) 4  # قاعدة البيانات الحالية بها 4 مفاتيح

أنواع إرجاع الأوامر

تُرجع أوامر Redis أنواعًا مختلفة من النتائج:

مثال الإرجاع النوع الوصف
OK سلسلة بسيطة العملية ناجحة
"value" سلسلة قيمة سلسلة
(integer) 1 عدد صحيح نتيجة رقمية
1) "a"
2) "b"
مصفوفة قائمة أو مجموعة
(nil) فارغ المفتاح غير موجود أو لا توجد نتيجة
# Error خطأ فشل تنفيذ الأمر

تنفيذ الأوامر بشكل دفعات

الوضع التفاعلي

أدخل الأوامر واحدًا تلو الآخر في redis-cli:

REDIS
 SET a 1
OK
 SET b 2
OK
 GET a
"1"

وضع خط الأنابيب

تنفيذ الأوامر من ملف بشكل دفعات:

BASH
# إنشاء ملف أوامر commands.txt
echo "SET key1 value1" > commands.txt
echo "SET key2 value2" >> commands.txt
echo "GET key1" >> commands.txt

# تنفيذ دفعات
cat commands.txt | redis-cli

المخرجات:

TEXT
OK
OK
"value1"

التنفيذ المباشر من سطر الأوامر

BASH
# تنفيذ أمر واحد مباشرة
redis-cli SET mykey "myvalue"
# المخرجات: OK

redis-cli GET mykey
# المخرجات: "myvalue"

# تنفيذ أوامر متعددة
redis-cli << EOF
SET a 1
SET b 2
GET a
GET b
EOF

استخدام نظام المساعدة

لدى Redis نظام مساعدة شامل مدمج.

عرض مساعدة الأمر

REDIS
 HELP SET

  SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
  summary: Set the string value of a key
  since: 1.0.0
  group: string

عرض مجموعات الأوامر

REDIS
 HELP @string
# يسرد جميع أوامر السلسلة

الإكمال التلقائي

يدعم redis-cli مفتاح Tab لإكمال الأوامر:

REDIS
 SET<press Tab>
# يكتمل تلقائيًا إلى SET

نصائح مفيدة

1. عرض معلومات الخادم

REDIS
 INFO
# يُرجع معلومات خادم شاملة

# عرض أقسام محددة
 INFO server
 INFO memory
 INFO stats

2. عرض الإعدادات

REDIS
# عرض جميع الإعدادات
 CONFIG GET *

# عرض إعداد محدد
 CONFIG GET maxmemory
1) "maxmemory"
2) "0"

3. مراقبة الأوامر

REDIS
# مراقبة فورية لجميع الأوامر المنفذة
 MONITOR
OK
# ثم يعرض جميع الأوامر من جميع العملاء
💡 حالة الاستخدام: MONITOR مفيد لتصحيح الأخطاء — يمكنك رؤية جميع أوامر العملاء. استخدم بحذر في الإنتاج (تأثير على الأداء).

4. عرض اتصالات العملاء

REDIS
 CLIENT LIST
id=1 addr=127.0.0.1:52345 fd=8 name= age=10 idle=0 ...

❓ أسئلة شائعة

س لا يمكن الاتصال باستخدام redis-cli؟
ج تحقق مما إذا كان Redis قيد التشغيل (ps aux | grep redis)، وتحقق من صحة المنفذ، وتحقق من إعدادات جدار الحماية。
س لماذا يُرجع (nil)؟
ج (nil) تعني فارغ — عادةً لأن المفتاح غير موجود. استخدم EXISTS للتحقق。
س كيف أقوم بمسح بيانات الاختبار؟
ج استخدم FLUSHDB لمسح قاعدة البيانات الحالية، أو FLUSHALL لمسح جميع قواعد البيانات (خطير!).
س كيف أعرض جميع المفاتيح؟ *ج:استخدم KEYS ، لكن هذا بطيء مع مجموعات البيانات الكبيرة. استخدم SCAN في الإنتاج。

س:كيف أخرج من redis-cli؟

ج اكتب exit أو quit، أو اضغط Ctrl+D。

📖 ملخص

  • redis-server يبدأ خادم Redis، redis-cli يتصل به
  • PING يختبر الاتصال، SET/GET يخزّن ويسترجع السلاسل
  • DEL يحذف المفاتيح، EXISTS يتحقق من وجود مفتاح
  • KEYS يبحث عن المفاتيح (بحذر في الإنتاج)، DBSIZE يعد المفاتيح
  • استخدم HELP لمساعدة الأوامر، ومفتاح Tab للإكمال
  • MONITOR يراقب الأوامر، INFO يعرض معلومات الخادم

📝 تمارين

  1. تمرين البدء: ابدأ خادم Redis، وتصل باستخدام redis-cli، وشغّل أمر PING
  2. العمليات الأساسية: استخدم SET لتخزين اسمك وعمرك، ثم استخدم GET لاسترجاعهما
  3. تمرين انتهاء الصلاحية: عيّن مفتاحًا مع انتهاء صلاحية، انتظر حتى تنتهي صلاحيته، ثم استخدم GET للتحقق
  4. العمليات الدفعية: أنشئ ملفًا نصيًا بأوامر Redis متعددة ونفذها باستخدام وضع خط الأنابيب

الدرس التالي

في الدرس التالي، سنتعلم إعدادات Redis، والتي تغطي ملف إعدادات Redis وخيارات الإعدادات الشائعة.

100%