mysql — страница динамического индекса php-кэша

я нашел 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(любой метод) ?!

3

Решение

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);
3

Другие решения

Других решений пока нет …