Redis: بدء استخدام Redis السريع
بعد تثبيت Redis، دعنا نبدأ بسرعة ونتعلم عمليات Redis الأساسية.
1. بدء خادم Redis
(1) بدء التشغيل في المقدمة
أبسط طريقة لبدء Redis — يعمل في المقدمة ويسجل مباشرة في الطرفية.
redis-server
المخرجات:
[Redis server starting...]
Redis 7.0.11 (00000000/0) 64 bit
Running in standalone mode
Port: 6379
PID: 12345
Ready to accept connections
Ctrl+C لإيقاف خادم Redis.
(2) بدء التشغيل في الخلفية
يُوصى بالتشغيل في الخلفية للبيئات الإنتاجية.
# الطريقة 1: استخدام معامل daemonize
redis-server --daemonize yes
# الطريقة 2: تعديل ملف الإعدادات
# عدّل /etc/redis/redis.conf
daemonize yes
# ثم ابدأ
redis-server /etc/redis/redis.conf
(3) بدء التشغيل على منفذ محدد
# استخدام المنفذ 6380
redis-server --port 6380
(4) التحقق مما إذا كان Redis قيد التشغيل
# Linux
ps aux | grep redis-server
# أو استخدام redis-cli
redis-cli ping
# يُرجع PONG إذا كان Redis قيد التشغيل
2. الاتصال بـ Redis
(1) استخدام redis-cli
redis-cli هو عميل سطر الأوامر المدمج في Redis.
# الاتصال بـ Redis المحلي (الافتراضي 127.0.0.1:6379)
redis-cli
# بعد الاتصال، يتغير الموجه إلى:
127.0.0.1:6379>
(2) تحديد المضيف والمنفذ
# الاتصال بمضيف ومنفذ محددين
redis-cli -h 192.168.1.100 -p 6379
# الاتصال بمنفذ محلي مختلف
redis-cli -p 6380
(3) الاتصال بكلمة مرور
# الطريقة 1: معامل سطر الأوامر
redis-cli -a yourpassword
# الطريقة 2: المصادقة بعد الاتصال
redis-cli
AUTH yourpassword
OK
-a يعرض كلمة المرور في سجل الأوامر. للإنتاج، استخدم أمر AUTH أو ملف الإعدادات بدلاً من ذلك.
(4) الاتصال عبر مقبس Unix
redis-cli -s /tmp/redis.sock
(5) الخروج من redis-cli
# الخروج من الاتصال
exit
# أو
quit
# أو اضغط Ctrl+D
3. الأمر الأول: PING
يختبر أمر PING ما إذا كان الاتصال يعمل، مشابهًا لأمر ping الشبكي.
▶ مثال:اختبار الاتصال
PING
إذا كان Redis يعمل بشكل صحيح، فإنه يُرجع PONG.
(1) PING مع رسالة
PING "Hello"
"Hello"
يمكن لـ PING حمل رسالة، ويعيدها Redis كما هي.
4. الأوامر الأساسية: SET و GET
SET و GET هما أكثر الأوامر استخدامًا لتخزين واسترداد بيانات السلاسل.
(1) SET: تخزين البيانات
يقوم أمر SET بتعيين زوج مفتاح-قيمة.
▶ مثال:SET أساسي
SET name "Redis Tutorial"
GET name
▶ مثال:مع انتهاء الصلاحية
# تعيين مفتاح ينتهي صلاحيته بعد 10 ثوانٍ
SET temp "temporary" EX 10
GET temp
# أو استخدام PX للميلي ثانية
SET temp2 "temp" PX 5000
GET temp2
▶ مثال:التعيين فقط إذا كان المفتاح غير موجود
# NX: التعيين فقط إذا كان المفتاح غير موجود
SET name "New Name" NX
# XX: التعيين فقط إذا كان المفتاح موجودًا
SET name "Updated Name" XX
GET name
(2) بناء جملة أمر 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 (ميلي ثانية) |
(3) GET: قراءة البيانات
يسترجع أمر GET قيمة المفتاح.
▶ مثال:GET أساسي
GET name
# المفتاح غير موجود، يُرجع nil
GET notexist
▶ مثال:GETSET (الحصول على القيمة القديمة، تعيين قيمة جديدة)
GETSET name "New Value"
GET name
5. أوامر أساسية أخرى
(1) DEL: حذف مفتاح
SET temp "delete me"
OK
DEL temp
(integer) 1 # الحذف ناجح، يُرجع عدد المفاتيح المحذوفة
DEL temp
(integer) 0 # المفتاح غير موجود، تم حذف 0
(2) EXISTS: التحقق من وجود المفتاح
SET name "Redis"
OK
EXISTS name
(integer) 1 # موجود
EXISTS notexist
(integer) 0 # غير موجود
(3) KEYS: البحث عن المفاتيح
# تعيين بعض بيانات الاختبار
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"
(4) FLUSHDB: مسح قاعدة البيانات الحالية
# مسح جميع البيانات في قاعدة البيانات الحالية (خطير!)
FLUSHDB
OK
(5) DBSIZE: عد المفاتيح
DBSIZE
(integer) 4 # قاعدة البيانات الحالية بها 4 مفاتيح
6. أنواع إرجاع الأوامر
تُرجع أوامر Redis أنواعًا مختلفة من النتائج:
| مثال الإرجاع | النوع | الوصف |
|---|---|---|
OK |
سلسلة بسيطة | العملية ناجحة |
"value" |
سلسلة | قيمة سلسلة |
(integer) 1 |
عدد صحيح | نتيجة رقمية |
1) "a"``<br>``2) "b" |
مصفوفة | قائمة أو مجموعة |
(nil) |
فارغ | المفتاح غير موجود أو لا توجد نتيجة |
# Error |
خطأ | فشل تنفيذ الأمر |
7. تنفيذ الأوامر بشكل دفعات
(1) الوضع التفاعلي
أدخل الأوامر واحدًا تلو الآخر في redis-cli:
SET a 1
OK
SET b 2
OK
GET a
"1"
(2) وضع خط الأنابيب
تنفيذ الأوامر من ملف بشكل دفعات:
# إنشاء ملف أوامر commands.txt
echo "SET key1 value1" > commands.txt
echo "SET key2 value2" >> commands.txt
echo "GET key1" >> commands.txt
# تنفيذ دفعات
cat commands.txt | redis-cli
المخرجات:
OK
OK
"value1"
(3) التنفيذ المباشر من سطر الأوامر
# تنفيذ أمر واحد مباشرة
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
8. استخدام نظام المساعدة
لدى Redis نظام مساعدة شامل مدمج.
(1) عرض مساعدة الأمر
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
(2) عرض مجموعات الأوامر
HELP @string
# يسرد جميع أوامر السلسلة
(3) الإكمال التلقائي
يدعم redis-cli مفتاح Tab لإكمال الأوامر:
SET<press Tab>
# يكتمل تلقائيًا إلى SET
9. نصائح مفيدة
(1) عرض معلومات الخادم
INFO
# يُرجع معلومات خادم شاملة
# عرض أقسام محددة
INFO server
INFO memory
INFO stats
(2) عرض الإعدادات
# عرض جميع الإعدادات
CONFIG GET *
# عرض إعداد محدد
CONFIG GET maxmemory
1) "maxmemory"
2) "0"
(3) مراقبة الأوامر
# مراقبة فورية لجميع الأوامر المنفذة
MONITOR
OK
# ثم يعرض جميع الأوامر من جميع العملاء
(4) عرض اتصالات العملاء
CLIENT LIST
id=1 addr=127.0.0.1:52345 fd=8 name= age=10 idle=0 ...
❓ أسئلة شائعة
ps aux | grep redis)، وتحقق من صحة المنفذ، وتحقق من إعدادات جدار الحماية。📖 ملخص
- redis-server يبدأ خادم Redis، redis-cli يتصل به
- PING يختبر الاتصال، SET/GET يخزّن ويسترجع السلاسل
- DEL يحذف المفاتيح، EXISTS يتحقق من وجود مفتاح
- KEYS يبحث عن المفاتيح (بحذر في الإنتاج)، DBSIZE يعد المفاتيح
- استخدم HELP لمساعدة الأوامر، ومفتاح Tab للإكمال
- MONITOR يراقب الأوامر، INFO يعرض معلومات الخادم
📝 تمارين
- تمرين البدء: ابدأ خادم Redis، وتصل باستخدام redis-cli، وشغّل أمر PING
- العمليات الأساسية: استخدم SET لتخزين اسمك وعمرك، ثم استخدم GET لاسترجاعهما
- تمرين انتهاء الصلاحية: عيّن مفتاحًا مع انتهاء صلاحية، انتظر حتى تنتهي صلاحيته، ثم استخدم GET للتحقق
- العمليات الدفعية: أنشئ ملفًا نصيًا بأوامر Redis متعددة ونفذها باستخدام وضع خط الأنابيب
10. الدرس التالي
في الدرس التالي، سنتعلم إعدادات Redis، والتي تغطي ملف إعدادات Redis وخيارات الإعدادات الشائعة.