mahdi
5 سال پیش توسط mahdi مطرح شد
5 پاسخ

کش کردن کلیه صفحات یک سایت خبری

سلام
سوالی داشتم که می خواستم ببینم از نظر منطقی کار صحیحیه یا خیر؟
من یک سایت خبری دارم که نزدیک 90 هزار صفحه داره و بازدید روزانش هم بین 10 هزار تا 50 هزار صفحه در روزه.
همیشه با کوئری های سنگین دیتابیس مشکل دارم. خواستم ببینم اگه تمام درخواست های دیتابیس رو در کش ذخیره کنم، مثلا تمام اطلاعات صفحات رو جداگانه در کش ذخیره کنم و فقط در صورت ویرایش اطلاعات صفحه اون ها رو از دیتابیس فراخوانی و دوباره کش کنم بازدهی سایت چگونه خواهد بود؟
اساسا زیاده روی در استفاده از کش چه تبعاتی داره؟
من بیشتر مد نظرمه که از کش فایل لاراول استفاده کنم.


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

درود
اصولا استفاده از کش باعث میشه تا سرعت اجرا تا حد زیادی بالا بره..
برای مثال همین قسمت "۱۰ کاربر برتر ۳۰ روز گذشته" راکت رو در نظر بگیرید.. برای نمایش این اطلاعات باید یه کوئری زده بشه و اطلاعاتش دریافت بشه و به کاربر نشون داده بشه. ما میتونیم اطلاعات این چنینی رو ۱ یا ۲ بار در روز در کش مقداردهی کنیم..
حال اگر در روز قرار باشه ۱۰۰۰۰ کاربر یک صفحه رو ببینند، فقط اولی زمان زیادی رو حس میکنه (چون کَش هنوز خالیه) و برای ۹۹۹۹ مورد بعد ما داده رو از کش فراخوانی میکنیم و سریعا به کاربر نمایش میدیم..

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

For larger applications, it is recommended that you use a more robust driver such as Memcached or Redis.


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

بله استفاده از کش رو متوجهم. سوال من کش کردن کوری های 90 هزار صفحه است. برای چنین مواردی این کار منطقیه؟


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

بله . اصلا کش کردن برای این مقدار زیاد از داده هاست.. اما نه که تمام ۹۰ هزار کوئری رو بخواهید کش کنید.. سعی کنید مواردی که زیاد در صفحات استفاده میشه رو کش کنید و حالا متن خود خبر رو هربار هم کوئری بزنید فشاری به سرور نمیاد

قبلا در کلاس QueryBuilder لاراول یه متد remember هم بود که میشد باهاش کوئری هارو کش کرد اما این قابلیت الان حذف شده
اما یه پکیج هم به نام rememberable هست که برای همین کار نوشته شده.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

سلام
@esmahdim

منم استفاده از کش رو پیشنهاد میکنم
چند روز پیش هم مبحثی بود راجب سرعت ها در کش
https://roocket.ir/discuss/5743
این هست ، میتونه مفید باشه برای انتخاب درایور.!
بخونید حتما


Ben Dehqan
تخصص : توسعه دهنده پروژه های فناورمحو...
@ben.dehqan 5 سال پیش مطرح شد
0

یه سیستم کش به صورت php native قبلا توسعه داده بودم. شما می تونید برای فایل های کش تون زمان اکسپایر تعیین کنید.
از طرفی وقتی کوئری از سمت کاربر برای نمایش ثبت شد اول چک کنید که فایل کش موجود هست و هنوز اکسپایر نشده باشه. اگر همه شروط اکی بود فایل کش رو به کاربر نشون بدین. در غیر این صورت کاربر اطلاعات از دیتابیس دریافت کنه و فایل کش جدید بسازید.


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

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