کش کردن در لاراول توسط redis

پوریا سبحانلو

پوریا سبحانلو

18 اسفند 1400
دقیقه 6
کش کردن در لاراول توسط redis
laravelredis

تو این مطلب میخوایم مرور کوتاه همراه با مثال برای Redis داشته باشیم.

کافیگ Redis انقدر ترسناک و سخت نیست.

اینکه لاراول Redis رو جز کانفیگ کش ها آورده بر محبوبیت این فریم ورک اضافه کرده.

این یه آموزش کوتاه راجب Redis پس قدم قدم با هم بریم جلو.

تو این متن من تموم تلاشمو کردم که خیلی ساده براتون توضیح بدم اگه موردی هست باز تو کامنت ها بهم بگید.

اصلا ردیس چیه؟

ردیس یه سیستم اپن سورس بر اساس BSD license هست که میتونه به عنوان DB یا cache یا message broker استفاده بشه.

ردیس نوع دیتای  string  , list   hash رو میتونه ساپورت کنه. توانایی ذخیره ساختار  key-value از مزیت مهم ردیس هستش

ردیس رو با ANSI C نوشته روروی تمام سیستم عامل ها قابلیت نصب به عنوان  dependancy دارد.

البته این نکته رو بگم نسخه offlical روی  سیستم عامل  windows ندارید و باید از ابزار های جانبی استفاده کنید.

 

1 - سرور ردیس نصب / راه اندازی

اول از همه اینو باید بدونید که ردیس مخصوص  php یا لاراول نیست این سیستم باید جداگانه روی سرور نصب بشه. یعنی از ملزومات نصب روی سیستم عامله.

  اینجا رو مطالعه کنید. (همراه قند شکن)  
بعد با دستور redis-server اونو اجرا کنید

 

2 - نصب افزونه redis برای  php


بعد نصب روی خود سیستم عامل شما نیاز دارید که افزونه اون نسخه از php که باهاش کار میکنید رو نصب کنید.

 

sudo apt-get install redis php8.1-redis

 

sudo systemctl restart php8.1-fpm.service

 

3 نصب پکیج predis 

 

تا قبل این مرحله شما Redis رو روی سرور اماده سازی کردید.

این گام برای کانفیگ قسمت Client هست. 
predis یکی از منعطف ترین پکیج  Redis Client هست که باید با  composer نصب کنید. البته میتونید از هر پکیجی استفاده کنید اما من این رو به شما پیشنهاد میدم.

 

composer require predis/predis

 

4 کانفیگ اولیه Redis

 

خوب تبریک میگم اگه تا این مرحله امدی یعنی همه قسمت های لازم رو انجام دادی و خوب پیش رفتی الان لازمه فقط کش فایل پیشفرض لاراول رو به Redis تغییر بدی.

اگه تنظیماتتون تو فایل env هست میتونید CACHE_STORE رو به redis تغییر بدید.

 

CACHE_STORE=redis

 

بقیه کانفیگ ها به شرط تغییر ندادن تنظیمات REDIS به این صورت میباشد.

REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

تنظیمات فایل config/cache  هم به این صورت میباشد.


   '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),
   ],

   'cache' => [
       'host' => env('REDIS_HOST', '127.0.0.1'),
       'password' => env('REDIS_PASSWORD', null),
       'port' => env('REDIS_PORT', 6379),
       'database' => env('REDIS_CACHE_DB', 1),
   ],

],

 5 چطوری با Redis کار کنیم؟

نکته اول اینکه هرجایی که نیاز با کار با Redis داریم باید Facade اون رو اضافه کنید

use Illuminate\Support\Facades\Redis;

 

Facade ردیس متد های مختفی داره که باید مستقیم به خود Redis وصل بشید. مثلا برای گرفتن دیتا با کلید خاص فقط لازمه از متد get('key') استفاده کنید

 

 class UserController extends Controller
{
   /**
    * Show the profile for the given user.
    *
    * @param  int  $id
    * @return Response
    */
   public function showProfile($id)
   {
       $user = Redis::get('user:profile:'.$id);
       return view('company.employee', ['user' => $user]);
   }
}

 

 

 


پوریا سبحانلو

پوریا سبحانلو

سلام من پوریام

یه php کاری که ریز نگاهی هم به فریم ورک های js داره


admoon من اینجام

اینارو هم یه نگاه بنداز