استفاده از Redis برای افزایش سرعت پروژه های لاراول

۲۳ بهمن ۱۳۹۷

در این مقاله ما 3 مثال عالی در استفاده از redis در لاراول را به شما نشان خواهیم داد که سرعت وب سایت شما را بهبود می دهد:

1.تعداد دفعات بازدید وب سایت

ما می توانیم از redis برای ذخیره تعداد دفعات بازدید یک وب سایت یا بلاگ استفاده کنیم. فرض کنید در پوشه web.php در پروزه لاراول خود کدهای زیر را وارد می کنید:

/routes/web.php:

use Illuminate\Support\Facades\Redis;

Route::get('/', function () {
    $visits = Redis::incr('visits');
    return $visits;
});

همانطور که در بالا می بینید با هر بار باز شدن صفحه در لاراول متغییر visits در redis افزایش پیدا می کند.

2. Laravel Caching with Redis:

فرض کنید می خواهیم با استفاده از redis در پروژه لاراول خود روی کلیه پستهای خود caching را فعال کنیم یک مثال ساده cache با استفاده از Redis:

/routes/web.php:

use Illuminate\Support\Facades\Redis;

Route::get('/', function () {
    // redis has posts.all key exists
    // posts found then it will return all post without touching the database
    if ($posts = Redis::get('posts.all')) {
        return json_decode($posts);
    }

    // get all post
    $posts = Post::all();

    // store into redis
    Redis::set('posts.all', $posts);

    // return all posts
    return $posts;
});

حالا اگر بخواهیم برای caching بالا زمان انقضا تعریف کنیم به شکل زیر عمل می کنیم:


use Illuminate\Support\Facades\Redis;

Route::get('/', function () {
    // check if redis has posts.all key exits
    // if posts found then it will return all post without touching the database
    if ($posts = Redis::get('posts.all')) {
        return json_decode($posts);
    }

    // get all post
    $posts = Post::all();

    // store data into redis for next 24 hours
    Redis::setex('posts.all', 60 * 60 * 24, $posts);

    // return all posts
    return $posts;
});

3.استفاده از Redis Cache Driver در لاراول

در فایل env پروژه لاراول خود CACHE_DRIVER را مساوی redis قرار دهید:

CACHE_DRIVER=redis

سپس به شکل زیر می توانید از Cache facade استفاده کنید:

/routes/web.php:

use Illuminate\Support\Facades\Cache;

Route::get('/', function () {
    return Cache::remember('posts.all', 60 * 60 * 24, function () {
        return Post::all();
    });
});

اگر میخواهید بیشتر در مورد دستورات Redis بدانید به آدرس زیر مراجعه کنید:

Redis Commands

 نویسنده:حمید شاه محمدی
 تعداد مشاهده خبر:(2211)
 هر روز از مقاله های جدید طراحی سایت در کانال تلگرام ما با خبر شوید

 میانگین امتیازات:
 
  تعداد رای دهندگان: {{ count }}
نظرات:

{{ x }}
{{ alert }}

نویسنده:{{ com.name }}
{{ com.body }}
{{ com.created_at }}