سلام دوستان.
برای کش صفحات php از سمت سرور انتخاب های زیادی وجود داره. معمولترین انتخاب opcache هست.
علاوه بر اون میشه به APC، Redis, memcached اشاره کرد.
نظرتون چیه ؟ کدومش رو به نظرتون فعال کنیم بهتره؟ و این که آیا از کد در ابتدای صفحات php برای کش کردن اون صفحه استفاده کنیم یا نه ؟
راستی میدونم لایت ایپید هم هست ولی چون رایگان نیست و خودم ازش استفاده نمی کنم توی موضوع مطرحش نکردم
در نهایت بهترین کش در سمت سرور کدام شد؟
و اینکه معمولا دیتا چه مدت زمان با فانکشن های مختلف کش میشه ؟
به جز لایت اسپید در بقیه فانکشن ها چجور میشه کش سرور رو خالی کرد؟
اگر امکان استفاده از لایت اسپید نباشه چطور؟
در بقیه فانکشن ها مثل redis ، به چه شکل کش سرور خالی میشه؟ فقط زمابندی هست ؟ دیتا کش مربوط به هر سایت در هاست اشتراکی فضای مخصوص به خودشو داره یا بحث دیتای کش کل سایت ها میزبانی شده روی سرور هست ؟ چون بیشتر از چند دقیقه دیتا نمیمونه و پاک میشه .
استفاده از redis همیشه بهتر است که روی سرویسی باشه که تک کاربره هست (یعنی محیط اشتراکی نباشه) فرضا انجمن سون هاست از Redis استفاده می کنه. در کل استفاده از Redis جدا از فعال بودن روی سرور بخشی عظیمی از اون توسط برنامه نویسی مدیریت میشه. در واقع برنامه (یا اسکریپت) هست که نحوه کارکرد کشینگ رو تعریف می کنه، نه سرور. سرور تنها امکانات رو ارایه میده. در واقع مثل سورس یک انرژی برای پردازش.
تو محیط اشتراکی اگر وب سایت بهینه ای دارید پیشنهاد می کنم از LiteSpeed Cache + Memcached استفاده کنید. یه موردی که خیلی به اشتباه گرفته میشه اینه که کاربرا فکر می کنن استفاده از افزونه LiteSpeed Cache فقط روی سرور هایی قابل استفاده هست که وب سرور اونها لایت اسپید باشه. درسته که وب سرور لایت اسپید امکانات زیادی به افزونه اضافه می کنه اما عملا محدود به اون نیست.
البته سوال اولیه این تاپیک در مورد بهترین سیستم از سمت سرور بود. اگر بخوام فقط به این سوال جواب بدم باید بگم که بستگی به موارد خیلی زیادی داره. اکثر مقالات موجود چند تا از بهترین سیستم های کشینگ مثل memcached، Redis، Varnish و یا حتی کشینگی که توسط خود برنامه نویسی php پیاده سازی شده باشه نام برده میشه.
اما سوال اینه که کدوم برای نوع استفاده شما مناسب تره؟ جواب این سوال بیشتر تخصصی هست که نمی تونه یه جواب کوتاه داشته باشه. اما رایج ترین کش سمت سرور Memcached و Redis هست که تقریبا میشه گفت در تمامی سیستم های php قابل استفاده هست.
یک مساله کلی:
شما برای چی میخواید از کش استفاده کنید؟ (برای این که مدت زمانی که برای مفسر php کد های شما رو به برنامه اجرایی برای پردازنده تبدیل کنه رو صرفه جویی کنید و سرور بیچاره برای هر درخواست کلی زحمت نکشه برای تبدیل کد های php که هر بار هم نتیجه تکراری و یکسانی خواهد داشت)
خپ وقتی شما کش رو میسازید و از اون استفاده می کنید در واقع فقط زحمت تبدیل رو کم کردید ولی باز دارید برای هر درخواست برنامه رو دوباره تکرار می کنید که هم مصرف هارددیسک(یا …) داره هم حجم اضافه داخل رم هم زحمت تکرار قسمت هایی از برنامه که نیاز نیست لود بشه برای پردازنده
بهتر نیست برنامه رو طوری بنویسید که همه قسمت های اون برای هر درخواست یکجا لود نشه؟ یا قسمت هایی همیشه در حال اجرا باشن برای همه اشتراکی کار کنن؟؟