应用托管php,托管在共享服务器上的应用程序的真正PHP缓存

博主提出了一种在不支持APC或memcached的环境下,为高流量网站创建PHP缓存系统的方案。该方案涉及根据时间将缓存数据分散到多个文件中,以避免同时更新导致的问题。当内容更新时,会生成新的缓存文件并覆盖旧文件。方案适用于每天有少量更新的博客,但提出了对于大量文章(如10000篇)和缓存时间选择的疑问。
摘要由CSDN通过智能技术生成

我想为我的应用程序创建PHP缓存系统。由于我的托管服务提供商不支持APC或memcached,我不得不建立自己的。

有许多PHP缓存类似乎是为小流量的网站设计的。当有人请求当前正在更新的文件时,它们大多会崩溃。

我会告诉你我处理这个问题的想法:

假设我们的网站是一个博客(每天3-4次更新),并且由两个主要文件组成:

pageX.php - 包含文章链接和说明的页面

articleID.php - 包含请求文章的页面

通常情况下,所有的事情都可以通过MySQL查询来处理,但我们希望节省一些服务器资源。

情况1:用户请求file.php(文章或页面)

file.php

//some code

$time = time();

//get second digit of minutes

$minutes = substr(date('i', $time), 1);

//get $result ∈ [0,599]

$result = $minutes*60 + (int)(date('s'));

//load cached version of data depending on time

if($result >= 0 && $result <= 199) {

require_once '/cache1/data.php';

}

else if($result >= 200 && $result <= 399) {

require_once '/cache2/data.php';

}

else if($result >= 400 && $result <= 599) {

require_once '/cache3/data.php';

}

//some code

?>文件/cacheX/data.php包含相同的缓存数据。

情况2:一些文章被添加/删除,管理员运行update.php

update.php:

1)从数据库中获取所有文章

2)对于所有新文章(自上次更新以来)创建文件articleID.php(使用我们想要缓存的数据)并将其保存到/ cache0 /文件夹(如果有必要则覆盖)

3)为每个页面(有细胞(计数($ articles)/ 5)页)创建文件pageX.php(与我们想要缓存的数据)并将其保存到/ cache0 /文件夹(如果必要则覆盖)

4)创建变量$ result(就像在file.php中一样)

5)http://bayimg.com/CAMffAADl

6)结束

现在我的问题:

A.您对这个解决方案有什么看法?你看到任何错误?你会添加/更改/删除什么?

B.真的有很多文章会发生什么(比如10000)?它仍然有效吗?

C.我选择了合适的时间吗?在这种情况下200秒是最好的? (假设缓存文件有5-10kB)

D.什么更好 - 我的解决方案或MySQL缓存?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值