Predis لـ PHP: دليل شامل مع أمثلة عملية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Predis ولماذا تحتاجه؟

Predis هو عميل متكامل للتعامل مع Redis (Remote Dictionary Server) بلغة PHP. Redis هو مخزن بيانات عالي الأداء من نوع "مفتاح-قيمة"، يُستخدم بشكل شائع للتخزين المؤقت، وإدارة الجلسات، وقوائم انتظار الرسائل، والتطبيقات في الوقت الفعلي. يتيح Predis لتطبيقات PHP التفاعل مع خادم Redis عن طريق إرسال الأوامر واستقبال الردود.

لماذا تستخدم Predis؟ على عكس العملاء الآخرين (مثل phpredis)، فإن Predis مكتوب بالكامل بلغة PHP ولا يتطلب تثبيت إضافات C إضافية. هذا يجعله الخيار الأمثل للبيئات التي لا يمكنك فيها التحكم في تثبيت الإضافات (مثل الاستضافات المشتركة). يدعم Predis جميع إمكانيات Redis الأساسية: السلاسل النصية، التجزئة، القوائم، المجموعات، المعاملات، Pub/Sub، التجميع، وغيرها الكثير.

حالات الاستخدام الرئيسية:

  • التخزين المؤقت (Caching) — تسريع أداء الموقع عن طريق تخزين البيانات المطلوبة بشكل متكرر في الذاكرة العشوائية.
  • إدارة الجلسات (Session Management) — تخزين جلسات المستخدمين في Redis للوصول السريع وقابلية التوسع.
  • قوائم انتظار المهام (Task Queues) — تنظيم معالجة المهام في الخلفية باستخدام قوائم Redis.
  • التصنيفات والعدادات (Leaderboards & Counters) — استخدام المجموعات المرتبة لبناء لوحات المتصدرين.
  • Pub/Sub — تنفيذ أنظمة تبادل الرسائل في الوقت الفعلي.

تثبيت Predis

يتم توزيع Predis عبر Composer — مدير الحزم القياسي لـ PHP. تأكد من تثبيت Composer على جهازك. إذا لم يكن مثبتًا، قم بتنزيله من getcomposer.org.

لتثبيت Predis، قم بتنفيذ الأمر التالي في المجلد الجذري لمشروعك:

composer require predis/predis

بعد التثبيت، سيظهر مجلد vendor وملف composer.json في مشروعك. لاستخدام Predis، قم بتضمين أداة التحميل التلقائي لـ Composer:

require 'vendor/autoload.php';

الحد الأدنى من المتطلبات: PHP 7.2 أو أعلى. لا يتطلب Predis تثبيت إضافة Redis لـ PHP، لأنه يطبق بروتوكول Redis بلغة PHP الخالصة.

بداية سريعة مع مثال كود

لنكتب سكريبتًا بسيطًا يتصل بـ Redis، ويحفظ قيمة، ثم يقرأها.

<?php
require 'vendor/autoload.php';

use Predis\Client;

// إنشاء عميل Redis (يتصل افتراضيًا بـ localhost:6379)
$client = new Client();

// تعيين قيمة
$client->set('greeting', 'Hello, Redis!');

// الحصول على القيمة
$value = $client->get('greeting');
echo $value; // سيطبع: Hello, Redis!

// التحقق من وجود المفتاح
if ($client->exists('greeting')) {
    echo "المفتاح موجود!";
}

// حذف المفتاح
$client->del(['greeting']);
?>

هذا الكود يقوم بما يلي:

  1. يتصل بخادم Redis على localhost (المنفذ 6379).
  2. يحفظ النص "Hello, Redis!" تحت المفتاح "greeting".
  3. يقرأ القيمة ويعرضها.
  4. يتحقق من وجود المفتاح.
  5. يحذف المفتاح.

إذا كان Redis يعمل على مضيف أو منفذ آخر، قم بتمرير معلمات الاتصال:

$client = new Client([
    'scheme' => 'tcp',
    'host'   => '192.168.1.100',
    'port'   => 6379,
]);

الأوامر الأساسية في Predis

يوفر Predis واجهة سهلة لجميع أوامر Redis. دعنا نستعرض 10 من أكثر الأوامر استخدامًا مع أمثلة تفصيلية.

1. set — تعيين قيمة

الوظيفة: تعيين قيمة لمفتاح معين. إذا كان المفتاح موجودًا بالفعل، يتم استبدال قيمته.

المعاملات:

  • $key (string) — اسم المفتاح.
  • $value (mixed) — القيمة (نص، رقم، أو مصفوفة سيتم تسلسلها).

توصيات