در این مقاله ما 3 مثال عالی در استفاده از redis در لاراول را به شما نشان خواهیم داد که سرعت وب سایت شما را بهبود می دهد:
ما می توانیم از redis برای ذخیره تعداد دفعات بازدید یک وب سایت یا بلاگ استفاده کنیم. فرض کنید در پوشه web.php در پروزه لاراول خود کدهای زیر را وارد می کنید:
/routes/web.php:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
همانطور که در بالا می بینید با هر بار باز شدن صفحه در لاراول متغییر visits در 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;
});
در فایل 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 بدانید به آدرس زیر مراجعه کنید: