نسخه:

ردیس

معرفی

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

قبل از استفاده از Redis با لاراول، باید predis/predis بسته (~1.0) را از طریق Composer نصب کنید.

توجه: اگر پسوند Redis PHP را از طریق PECL نصب کرده اید، باید نام مستعار Redis را در config/app.php فایل خود تغییر دهید.

پیکربندی

پیکربندی Redis برای برنامه شما در config/database.php فایل ذخیره می شود. redis در این فایل، یک آرایه حاوی سرورهای Redis مورد استفاده توسط برنامه خود را مشاهده خواهید کرد :

'redis' => [
 
'cluster' => true,
 
'default' => ['host' => '127.0.0.1', 'port' => 6379],
 
],

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

این cluster گزینه به کلاینت Laravel Redis می گوید که به اشتراک گذاری سمت کلاینت در گره های Redis شما انجام دهد و به شما این امکان را می دهد که گره ها را جمع کنید و مقدار زیادی RAM در دسترس ایجاد کنید. با این حال، توجه داشته باشید که اشتراک گذاری سمت کلاینت، Failover را کنترل نمی کند. بنابراین، در درجه اول برای داده های کش که از یک فروشگاه داده اصلی دیگر در دسترس است، مناسب است.

اگر سرور Redis شما نیاز به احراز هویت دارد، می‌توانید با افزودن یک password جفت کلید/مقدار به آرایه پیکربندی سرور Redis خود رمز عبور ارائه دهید.

استفاده

می توانید با فراخوانی Redis::connection متد یک نمونه Redis دریافت کنید:

$redis = Redis::connection();

این به شما یک نمونه از سرور Redis پیش فرض را می دهد. اگر از خوشه‌بندی سرور استفاده نمی‌کنید، می‌توانید نام سرور را به روش ارسال کنید connection تا یک سرور خاص را همانطور که در پیکربندی Redis شما تعریف شده است دریافت کنید:

$redis = Redis::connection('other');

هنگامی که شما یک نمونه از مشتری Redis دارید، ممکن است هر یک از دستورات Redis را برای نمونه صادر کنیم. لاراول از متدهای جادویی برای ارسال دستورات به سرور Redis استفاده می کند:

$redis->set('name', 'Taylor');
 
$name = $redis->get('name');
 
$values = $redis->lrange('names', 5, 10);

توجه داشته باشید که آرگومان های دستور به سادگی به روش جادویی منتقل می شوند. البته شما نیازی به استفاده از روش های جادویی ندارید، همچنین می توانید با استفاده از command روش دستورات را به سرور ارسال کنید:

$values = $redis->command('lrange', [5, 10]);

هنگامی که به سادگی دستورات را در برابر اتصال پیش فرض اجرا می کنید، فقط از متدهای جادویی استاتیک در Redis کلاس استفاده کنید:

Redis::set('name', 'Taylor');
 
$name = Redis::get('name');
 
$values = Redis::lrange('names', 5, 10);

توجه: کش Redis و درایورهای جلسه همراه با لاراول گنجانده شده است.

لوله کشی

زمانی که نیاز به ارسال دستورات زیادی به سرور در یک عملیات دارید باید از خط لوله استفاده شود. برای شروع از pipeline دستور زیر استفاده کنید:

لوله کشی بسیاری از دستورات به سرورهای شما

Redis::pipeline(function($pipe)
{
for ($i = 0; $i < 1000; $i++)
{
$pipe->set("key:$i", $i);
}
});