سلام
سوالی داشتم که می خواستم ببینم از نظر منطقی کار صحیحیه یا خیر؟
من یک سایت خبری دارم که نزدیک 90 هزار صفحه داره و بازدید روزانش هم بین 10 هزار تا 50 هزار صفحه در روزه.
همیشه با کوئری های سنگین دیتابیس مشکل دارم. خواستم ببینم اگه تمام درخواست های دیتابیس رو در کش ذخیره کنم، مثلا تمام اطلاعات صفحات رو جداگانه در کش ذخیره کنم و فقط در صورت ویرایش اطلاعات صفحه اون ها رو از دیتابیس فراخوانی و دوباره کش کنم بازدهی سایت چگونه خواهد بود؟
اساسا زیاده روی در استفاده از کش چه تبعاتی داره؟
من بیشتر مد نظرمه که از کش فایل لاراول استفاده کنم.
درود
اصولا استفاده از کش باعث میشه تا سرعت اجرا تا حد زیادی بالا بره..
برای مثال همین قسمت "۱۰ کاربر برتر ۳۰ روز گذشته" راکت رو در نظر بگیرید.. برای نمایش این اطلاعات باید یه کوئری زده بشه و اطلاعاتش دریافت بشه و به کاربر نشون داده بشه. ما میتونیم اطلاعات این چنینی رو ۱ یا ۲ بار در روز در کش مقداردهی کنیم..
حال اگر در روز قرار باشه ۱۰۰۰۰ کاربر یک صفحه رو ببینند، فقط اولی زمان زیادی رو حس میکنه (چون کَش هنوز خالیه) و برای ۹۹۹۹ مورد بعد ما داده رو از کش فراخوانی میکنیم و سریعا به کاربر نمایش میدیم..
اما در مورد استفاده از یه درایور خوب برای کش در لاراول:
For larger applications, it is recommended that you use a more robust driver such as Memcached or Redis.
بله استفاده از کش رو متوجهم. سوال من کش کردن کوری های 90 هزار صفحه است. برای چنین مواردی این کار منطقیه؟
بله . اصلا کش کردن برای این مقدار زیاد از داده هاست.. اما نه که تمام ۹۰ هزار کوئری رو بخواهید کش کنید.. سعی کنید مواردی که زیاد در صفحات استفاده میشه رو کش کنید و حالا متن خود خبر رو هربار هم کوئری بزنید فشاری به سرور نمیاد
قبلا در کلاس QueryBuilder لاراول یه متد remember هم بود که میشد باهاش کوئری هارو کش کرد اما این قابلیت الان حذف شده
اما یه پکیج هم به نام rememberable هست که برای همین کار نوشته شده.
سلام
@esmahdim
منم استفاده از کش رو پیشنهاد میکنم
چند روز پیش هم مبحثی بود راجب سرعت ها در کش
https://roocket.ir/discuss/5743
این هست ، میتونه مفید باشه برای انتخاب درایور.!
بخونید حتما
یه سیستم کش به صورت php native قبلا توسعه داده بودم. شما می تونید برای فایل های کش تون زمان اکسپایر تعیین کنید.
از طرفی وقتی کوئری از سمت کاربر برای نمایش ثبت شد اول چک کنید که فایل کش موجود هست و هنوز اکسپایر نشده باشه. اگر همه شروط اکی بود فایل کش رو به کاربر نشون بدین. در غیر این صورت کاربر اطلاعات از دیتابیس دریافت کنه و فایل کش جدید بسازید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟