masoud net
5 سال پیش توسط masoud net مطرح شد
6 پاسخ

سوال در مورد cache

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


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

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


1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش آپدیت شد
0

@ali.bayat

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

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


1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش مطرح شد
0

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

ببینید لاراول از چند روش برای کش کردن اطلاعات استفاده میکنه.
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
@netwons 5 سال پیش مطرح شد
0

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@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


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

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