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

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

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


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

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

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

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


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

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


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

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

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


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

سلام
@esmahdim

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


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

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


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

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