راکت

سوال در مورد cache

6 پاسخ

اولا فرق کش و دیتابیس چیه؟
دوما چرا باید از کش استفاده کنیم اصلا یعنی چی ؟
چرا باید اطلاعات رو کش کنیم ما که دیتابیس داریم هر موقع خواستیم از دیتابیس می خونیم چرا باید از کش استفاده کنیم؟

ثبت پرسش جدید

پاسخ‌ها

6
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

برای یه سایت کوچک حرف شما درسته. اما وقتی در یه سایت ما روزی قرار باشه ۱۰۰۰ بار ٬ اطلاعات یه جدول به مقدار ۱۰۰۰۰۰ سطر رو دریافت کنیم٬ این باعث فشار به سرور میشه پس میاند همون اطلاعات دیتابیس رو کش میکنند و اگر دوباره تغییر کرد به همین ترتیب.
این کار روی performance و سرعت سایت خیلی اثرگذاره

1masoud
1masoud
@masoudproton

تخصص: php,laravel

@ali.bayat

منظورتون از این که اگه اطلاعات تغییر یا نیاز به آپدیت باشه باcache بهتره

و در لاراول چطوری میشه اطلاعات دیتابیس رو کش کنیم

شاید پاسخ شما همین‌جا باشد

1masoud
1masoud
@masoudproton

تخصص: php,laravel

@ali.bayat
علی اقا میشه راهنمایی کنید

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

ببینید لاراول از چند روش برای کش کردن اطلاعات استفاده میکنه.
file, database, memcache & Redis
روش کش کردن اطلاعات رو میشه در فایل config/cache.php مشخص کرد.

برای مثال شما می‌تونیدیه کلید رو با اطلاعات خاصش با مقدار زمان مشخص کش کنید.

$expiresAt = now()->addMinutes(10);

Cache::put('key', 'value', $expiresAt);

و برای گرفتن اطلاعات کش شده:

$value = Cache::get('key');

حالا فرض کنید شما می‌خواهید اطلاعات ذخیره شدن در کش رو استفاده کنید.

$value = Cache::get('key', function () {
    return DB::table(...)->get();
});

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

masoud net
masoud net
@netwons

@ali.bayat
علی آقا اینارو میدونم
می خوام بدونم که حتی فیلد هایی که نیاز به آپدیت هم دارند رو میشه داخل کش ریخت و از کش بخونه و آپدیت کنه و در دیتابیس ذخیره کنه

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@netwons
گاهی لازم می شود یک آیتم را از cache بازیابی نموده، اما همچنین در صورت عدم وجود آیتم مورد درخواست یک مقدار پیش فرض را بجای آن درcache ذخیره نمود. فرض کنید می خواهید تمامی کاربران را از cache بازیابی نمایید یا در صورت عدم وجود کاربران مورد درخواست، آن ها را از دیتابیس واکشی کرده و در cache ذخیره کنید. برای این منظور کافی است متد Cache::remember را صدا بزنید:

$value = Cache::remember('users', $minutes, function() {
   return DB::table('users')->get();
});

برای اطلاعات بیشتر در زمینه کش در لاراول لینک‌های زیر رو مطالعه کنید:
https://laravel.com/docs/5.7/cache
http://www.tahlildadeh.com/ArticleDetails/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-Cache-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام