简体   繁体   English

php缓存动态索引页面

[英]php cache dynamic index page

I found phpfastcahce class for cached MySQL result. 我找到了缓存MySQL结果的phpfastcahce类。 in details that support WinCache, MemCache, Files, X-Cache, APC Cache and say: 在支持WinCache,MemCache,文件,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.

in sample code: 在示例代码中:

<?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
    }
?>

NOW, In my index of my website I have any block for show last news, best news, world news ..... for cache my index, i must cache MySQL result for each block (last news, best news, world news ..... ) using phpfastcache and in admin page remove all cache if I edit existing news Or add new news? 现在,在我的网站索引中,我有任何块显示最新消息,最佳新闻,世界新闻.....缓存我的索引,我必须缓存每个块的MySQL结果(last news, best news, world news ..... )如果我编辑现有新闻或添加新消息,使用phpfastcache并在管理页面中删除所有缓存? this is a true way? 这是一种真实的方式吗?

what's best way For cache MySQL result my index page using phpfastcache (any method)?! 什么是最好的方法对于缓存MySQL结果我的索引页面使用phpfastcache (任何方法)?!

phpfastcache cant uderstand your data was changed or not phpfastcache无法理解您的数据是否已更改

you must do something after specific data changed in your database 在数据库中更改特定数据后,您必须执行某些操作

first in your home page cache code must be like this : 首先在你的主页缓存代码必须是这样的:

$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);
}

. . .

and in your admin page when specific data changed cache code must be like this : 并在您的管理页面中,当特定数据更改缓存代码必须如下所示:

AFTER DATABASE insert | update ....

you can replace old cache by this two way : 您可以通过以下两种方式替换旧缓存:

1) delete cache (after delete cache , cache automatically rebuild after first visit) 1)删除缓存(删除缓存后,首次访问后缓存自动重建)

phpFastCache::delete('index_lastnews');

2) update cache 2)更新缓存

$lastnews =   YOUR DB QUERIES || GET_DATA_FUNCTION;
phpFastCache::set("index_lastnews",$lastnews,600);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM