چگونه Redis را در Laravel راهاندازی کنیم؟
Redis یک ابزار قدرتمند برای افزایش سرعت و بهینهسازی عملکرد در لاراول است. در این مقاله، نحوهی نصب، پیکربندی و استفاده از Redis برای کشینگ، صفها و مدیریت نش..


لیست مطالب
در دنیای توسعه وب، مدیریت کارآمد دادهها و بهبود عملکرد اپلیکیشنها از اهمیت بالایی برخوردار است. Redis بهعنوان یک پایگاه دادهی NoSQL مبتنی بر حافظه، ابزاری قدرتمند برای کشینگ (caching)، صفبندی (queueing) و ذخیرهسازی دادههای موقت است. در Laravel، به لطف پشتیبانی بومی از Redis، میتوان بهراحتی از آن برای افزایش سرعت بارگذاری و کاهش بار روی پایگاه دادهی اصلی استفاده کرد.
در این مقاله، نحوهی راهاندازی، پیکربندی و استفاده از Redis در لاراول را بررسی خواهیم کرد.
Redis چیست و چرا باید از آن استفاده کنیم؟
Redis چیست؟
Redis مخفف Remote Dictionary Server است و یک پایگاه داده NoSQL از نوع Key-Value Store میباشد که روی حافظه (RAM) اجرا میشود. این ویژگی، Redis را به ابزاری ایدهآل برای کشینگ و مدیریت دادههای موقت تبدیل میکند.
چرا Redis در لاراول کاربرد دارد؟
- افزایش سرعت: به دلیل ذخیرهسازی دادهها در حافظه، خواندن و نوشتن اطلاعات در Redis بسیار سریعتر از پایگاه دادههای سنتی مانند MySQL یا PostgreSQL است.
- کاهش بار روی دیتابیس اصلی: با استفاده از Redis، میتوان از درخواستهای غیرضروری به دیتابیس جلوگیری کرد.
- پشتیبانی از انواع دادهها: شامل String، List، Set، Hash و Sorted Set.
- پشتیبانی از Pub/Sub: امکان استفاده در پیامرسانی و نوتیفیکیشنهای لحظهای.
- پشتیبانی بومی در Laravel: لاراول یک لایهی انتزاعی برای کار با Redis ارائه میدهد که استفاده از آن را سادهتر میکند.
نصب و راهاندازی Redis در لاراول
۱. نصب Redis روی سرور
ابتدا Redis را روی سیستم یا سرور خود نصب کنید.
نصب در اوبونتو (Ubuntu)
sudo apt update
sudo apt install redis-server
پس از نصب، سرویس Redis را راهاندازی کنید:
sudo systemctl enable redis
sudo systemctl start redis
برای بررسی عملکرد Redis، دستور زیر را اجرا کنید:
redis-cli ping
اگر Redis به درستی نصب شده باشد، پاسخ PONG دریافت خواهید کرد.
۲. نصب افزونه Redis برای PHP
لاراول برای ارتباط با Redis به php-redis نیاز دارد. برای نصب این افزونه در اوبونتو از دستور زیر استفاده کنید:
sudo apt install php-redis
در صورتی که از Composer استفاده میکنید، پکیج مربوط به Redis را نصب کنید:
composer require predis/predis
۳. تنظیمات Redis در Laravel
لاراول به صورت پیشفرض از Predis یا phpredis برای ارتباط با Redis استفاده میکند. برای تنظیم Redis، فایل .env
را باز کرده و مقدار CACHE_DRIVER و SESSION_DRIVER را روی redis تنظیم کنید:
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
سپس، در فایل config/database.php
، قسمت redis را بررسی کنید:
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
],
در صورت استفاده از phpredis، مقدار client
را به phpredis تغییر دهید:
REDIS_CLIENT=phpredis
کاربردهای Redis در لاراول
۱. استفاده از Redis برای کشینگ
یکی از رایجترین کاربردهای Redis در لاراول، ذخیرهسازی کش است. برای ذخیره دادهها در کش میتوان از متد Cache::put
استفاده کرد:
use Illuminate\Support\Facades\Cache;
Cache::put('user_1', ['name' => 'Ali', 'email' => '[email protected]'], 600);
دادهی فوق برای ۱۰ دقیقه (۶۰۰ ثانیه) در Redis ذخیره میشود.
دریافت داده از کش:
$user = Cache::get('user_1');
حذف مقدار از کش:
Cache::forget('user_1');
۲. استفاده از Redis برای ذخیرهسازی نشستها (Sessions)
با تنظیم مقدار SESSION_DRIVER
روی redis در فایل .env
، لاراول نشستهای کاربران را در Redis ذخیره میکند.
فعالسازی مجدد نشستها:
php artisan config:clear
php artisan cache:clear
۳. استفاده از Redis برای صفهای پردازشی (Queues)
در لاراول، Queues یا صفها برای اجرای وظایف پسزمینهای استفاده میشوند. برای استفاده از Redis بهعنوان درایور صف، مقدار زیر را در .env
تنظیم کنید:
QUEUE_CONNECTION=redis
سپس، برای ارسال یک Job به صف:
use App\Jobs\SendEmail;
dispatch(new SendEmail($user));
برای پردازش صف:
php artisan queue:work --queue=default
۴. استفاده از Redis برای ذخیرهسازی شمارندهها (Counters)
Redis یک گزینه عالی برای شمارندههاست. برای افزایش مقدار یک متغیر:
Redis::incr('page_views');
برای کاهش مقدار:
Redis::decr('page_views');
برای دریافت مقدار:
$pageViews = Redis::get('page_views');
۵. استفاده از Redis برای Pub/Sub
Redis از انتشار و اشتراک (Publish/Subscribe) پشتیبانی میکند که میتوان از آن برای پیامرسانی بلادرنگ استفاده کرد.
انتشار پیام:
use Illuminate\Support\Facades\Redis;
Redis::publish('notifications', json_encode(['message' => 'New update available!']));
اشتراک در کانال:
redis-cli
SUBSCRIBE notifications
استفاده از Redis در لاراول، باعث افزایش کارایی، کاهش بار روی دیتابیس و بهبود سرعت اجرای برنامه میشود. از این ابزار میتوان برای کشینگ دادهها، مدیریت نشستها، اجرای صفهای پردازشی و انتشار پیامهای بلادرنگ استفاده کرد. با ترکیب Redis و Laravel، میتوان برنامههایی مقیاسپذیر و سریع ایجاد کرد.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)