PDA

View Full Version : سوال: منابع ذخیره اطلاعات در سطح Application در php (مانند Cache,Application در asp.net)



Chabok
یک شنبه 08 اسفند 1389, 23:56 عصر
با سلام دوستان
در php منابعی که بصورت Global (قابل دسترس عمومی) در سمت سرور ، روی حافظه و بصورت موقتی ذخیره بشه چی داریم ؟
چیزی شبیه session . ولی جهت دسترسی تمامی کاربران . نه فقط یک کاربر

دقیقاً چیزی مانند state های Application و Cahce در asp.net لازم دارم
شاید متن اصلی مفهوم را بهتر برسونه



Application state is a data repository available to all classes in an ASP.NET application. Application state is stored in memory on the server and is faster than storing and retrieving information in a database. Unlike session state, which is specific to a single user session, application state applies to all users and sessions

تنها چیزی که پیدا کردم استفاده از apc بود
http://php.net/manual/en/book.apc.php

ولی در این مورد هم چند سوال دارم :
آیا apc از حافظه سیستم استفاده میکنه یا در پشت صحنه اطلاعات رو در فایل ذخیره میکنه ؟
استفاده از apc روی هاستینگ های مختلف بخوبی پشتیبانی میشه ؟
(چون ظاهراً extension مجزا جهت نصب داره و بصورت ذاتی در php نیست)

و در کل پیشنهادتون چیه در این موضوع
ممنون

**ویرایش**
memcache هم ظاهراً چنین کاری انجام میده
http://php.net/manual/en/book.memcache.php
این چطوره ؟
همون سوالات در مورد apc در مورد این رو هم دارم

ممنون

امیـرحسین
دوشنبه 09 اسفند 1389, 15:31 عصر
سلام
شما چرا از فایل و دیتابیس معمولی استفاده نمی کنید؟ میخواید از حافظه بخونید؟
این نمونه هایی که معرفی کردید سیستمهای کش هستند که همه ی سیستمهای کش از یک منبعی (عموما فایل) استفاده میکنند. شما میتونید چنین سیستمی رو خودتون با فایلهای سبک و دسته بندی شده اجرا کنید که نه حافظه زیاد اشغال شه و نه خواندن فایل زمانگیر نشه.
در مورد Extensionهای PHP اونهایی که پیشفرض نصب نیست باید نصب بشه و برای نصب اونها اگر سرور برای خودتونه یا از هاستینگ مادر سرویس گرفتید که مشکل چندانی ندارید ولی اگر از سرور Share استفاده میکنید یا از Resellerها سرویس گرفتید مشکل خواهید داشت.

sattaryekta
دوشنبه 09 اسفند 1389, 16:01 عصر
MemCache چی هست و به چه دردی میخوره؟
کاربرد تجاریش چی میتونه باشه؟
لطفا توضیح دهید.

Chabok
دوشنبه 09 اسفند 1389, 16:14 عصر
با سلام
ممنون از پاسخ شما

شما چرا از فایل و دیتابیس معمولی استفاده نمی کنید؟ میخواید از حافظه بخونید؟
من سیستمی رو قراره پیاده سازی کنم که بصورت زنده شبیه chat در هر لحظه آمار رو بصورت live داشته باشم
بدین منظور ممکنه این منبع در هر ثانیه نیاز به چندین بار خواندن و نوشتن داشته باشه

به همین دلیل خواستم که از فایل و دیتابیس استفاده نکنم و از حافظه استفاده بشه تا بهینه باشه

حالا با این شرایط استفاده از فایل رو پیشنهاد میکنید یا خیر ؟

در مورد extension ها هم باید بگم این سیستم ممکنه در آینده یک سیستم تجاری کوچیک بشه و میخوام در صورت فروش مشتریان به مشکل برخورد نکنند
پس بهتره روشی انتخاب کنم که حتی الامکان نیاز به ext نداشته باشه

ممنون

alonemm
دوشنبه 09 اسفند 1389, 17:10 عصر
باسلام:
درباره سوال شما كه در مورد كش هست كه در PHP هم وجود داره اما state ها رو در PHP بايد خودتون كنترل كنيد.

براي پياده سازي سيستم هاي چت هم شما ميتونيد از Ajax و جدول هاي موقت استفاده كنيد.
ميتونيد يك پرو‍ژه رو باز كنيد و راه كارهاشو ببنيد.
(اما بازم هر پرو‍ژه چت ميتونه از يكسري راهكار هاي خاص استفاده كنه مثل در جدول موقت ثبت نشه و در يك فايل متني يا ... ولي در كل براي باز سازي صفحه در بازه زمان از Ajax استفاده ميشه)


موفق باشيد.

Chabok
دوشنبه 09 اسفند 1389, 17:20 عصر
با سلام
من مشکلی در AJAX و سایر جزئیات ندارم

فقط به دنبال منابعی معادل Application و یا Cache موجود در ASP.net در php بودم .

درباره سوال شما كه در مورد كش هست كه در PHP هم وجود داره اما state ها رو در PHP بايد خودتون كنترل كنيد.
میشه یه مثال یا منبع در این مورد ذکر کنید ؟ ممنون میشم

امیـرحسین
دوشنبه 09 اسفند 1389, 23:07 عصر
سیستمهای چتی که من دیدم از دیتابیس معمولی استفاده میکردند ولی میشه همین روش رو تا حد امکان بهینه کرد مثلا استفاده از نوع جدول Memory بجای MyISM یا InnoDB غیره که از حافظه استفاده میکنه و سیستمهایی ORM و مشابه که دسترسی به دیتابیس رو سریع و قوی میکنند و درخواستهای کم حجم و غیره.

Chabok
سه شنبه 10 اسفند 1389, 00:07 صبح
ممنون از همگی
البته در اینجا به سیستم chat در این مورد برخورد داشتم .که خب با راهنمایی دوستان روش های جایگزین مطرح شد .
ولی بیشتر میخواستم معادل هایی در php مانند امکانات asp.net پیدا کنم که ظاهراً به اون صورت وجود نداره .

باز هم ممنون

Keramatifar
چهارشنبه 07 اردیبهشت 1390, 12:09 عصر
دوست عزیز
توی PHP ما مثل ASP.NET بصورت Internal چیزهایی مثل cache و application و viewstate نداریم
اما می تونیم بصورت external ازشون استفاده کنیم، شما باید یک چیزی مثل php cache یا php acceleratort را روی سرور نصب کنید و سپس از طریق کلاس هایی که در اختیارتون میذاره بهش کانکت بشید و از امکاناتش استفاده کنید.