я нашел phpfastcahce класс для кэшированного MySQL результата. в деталях, которые поддерживают WinCache, MemCache, Files, X-Cache, APC Cache и говорят:
PHP Caching Class For Database : Your website have 10,000 visitors who are online, and your dynamic page have to send 10,000 same queries to database on every page load. With phpFastCache, your page only send 1 query to DB, and use the cache to serve 9,999 other visitors.
в примере кода:
<?php
// In your config file
include("php_fast_cache.php");
// This is Optional Config only. You can skip these lines.
// phpFastCache support "apc", "memcache", "memcached", "wincache" ,"files", "pdo", "mpdo" and "xcache"// You don't need to change your code when you change your caching system. Or simple keep it auto
phpFastCache::$storage = "auto";
// End Optionals
// In your Class, Functions, PHP Pages
// try to get from Cache first.
$products = phpFastCache::get("products_page");
if($products == null) {
$products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION;
// set products in to cache in 600 seconds = 10 minutes
phpFastCache::set("products_page",$products,600);
}
foreach($products as $product) {
// Output Your Contents HERE
}
?>
ТЕПЕРЬ, в моем индексе моего сайта есть какой-либо блок для показа последних новостей, лучших новостей, мировых новостей ….. для кеширования моего индекса, я должен кешировать MySQL
результат для каждого блока(last news, best news, world news ..... )
используя phpfastcache и на странице администратора удалите весь кеш, если я редактирую существующие новости или добавляю новые новости? это верный путь?
какой лучший способ для кеша MySQL
результат моей страницы индекса, используя phpfastcache(любой метод) ?!
phpfastcache не может понять, что ваши данные были изменены или нет
Вы должны сделать что-то после изменения конкретных данных в вашей базе данных
Первый в вашей домашней странице код кэша должен быть таким:
$lastnews = phpFastCache::get('index_lastnews');
$bestnews = phpFastCache::get('index_bestnews');
$worldnews = phpFastCache::get('index_worldnews');
if($lastnews == null) {
$lastnews = YOUR DB QUERIES || GET_DATA_FUNCTION;
phpFastCache::set('index_lastnews',$lastnews,600);
}
if($bestnews == null) {
$bestnews = YOUR DB QUERIES || GET_DATA_FUNCTION;
phpFastCache::set('index_bestnews',$bestnews,600);
}
.
.
.
и на вашей странице администратора, когда конкретные данные изменились, код кэша должен быть таким:
AFTER DATABASE insert | update ....
Вы можете заменить старый кеш следующим образом:
1) удалить кеш (после удаления кеша кеш автоматически перестраивается после первого посещения)
phpFastCache::delete('index_lastnews');
2) обновить кеш
$lastnews = YOUR DB QUERIES || GET_DATA_FUNCTION;
phpFastCache::set("index_lastnews",$lastnews,600);
Других решений пока нет …