使用PHP缓存变量?

Sheel Ranjan

我正在检索目录中的所有文件并缓存该值,这样就不必一次又一次地检索它

$memefiles = glob("usermemes/*.jpeg"); 
$total_pages = ceil(sizeof($memefiles)/$num_rec_per_page);

有什么方法可以缓存此结果,这样我就不必一次又一次地执行这些功能。

戴维·康拉德

有很多优化或缓存的方法,最好的方法取决于您要缓存的内容,数量和所需的刷新频率。例子是

  • 将计算结果存储在会话,数据库或文件中,然后查找
  • 先进行计算,然后再查找
  • 存储您的页面(PHP输出到文件中)并将存储的版本交付给用户
  • 使用类似Varnish的缓存/ HTTP加速器

在这种情况下,我认为预先计算可以满足您的需求。只需将您的代码放在一个脚本中,calculate.php,即可将计算出的$total_pages保存到一个文件中:

<?
$memefiles = glob("usermemes/*.jpeg"); 
$total_pages = ceil(sizeof($memefiles)/$num_rec_per_page);
file_put_contents('totalpages.dat', $total_pages);
?>

现在设置一个cron作业,calcaulate.php每1分钟,5分钟,每小时或您需要的时间运行一次。如果在Windows服务器上运行,则应改用Task Scheduler等效项。设置cronjobs非常容易,但是在系统和GUI /命令行工具之间会有所不同,如果您有现场服务器或使用专业的Web主机,则有所不同。因此,请在stackoverflow中搜索适合您特定情况的cron作业。

假设您正在执行cron作业,将的值保存$total_pages到文件中,那么您将通过以下方式在网页上检索您的值:

$total_pages = file_get_contents('totalpages.dat');

这样可以保证提高需要交付$total_pages价值的所有页面的性能公认的答案相比,此解决方案具有一些明显的优势:

  • 无论您有1个,10.000或1.000.000用户/页面加载量,该任务每次仅运行一次。
  • 用户仍然可以接收近乎新鲜或近乎实时的数据。cronjob频率决定新鲜程度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP将变量存储在缓存中

来自分类Dev

使用锁和易失性缓存的变量

来自分类Dev

使用Jupyter缓存函数中的变量

来自分类Dev

使用锁和易失性缓存的变量

来自分类Dev

使用全局变量来缓存值

来自分类Dev

URL变量和PHP重定向,是否可以缓存?

来自分类Dev

使用laravel和php进行缓存或会话

来自分类Dev

使用opcache在PHP中缓存静态数据

来自分类Dev

如何使用HTML,Apache或PHP缓存

来自分类Dev

保持加载/缓存变量,以便它们可以被多个请求使用。

来自分类Dev

最好使用全局变量作为Javascript中的缓存?

来自分类Dev

PHP:使用变量函数

来自分类Dev

使用php分割变量

来自分类Dev

使用PHP变量

来自分类Dev

使用变量的 PHP 算术

来自分类Dev

CMake缓存变量与全局属性:使用变量值的简单语法

来自分类Dev

如何在PHP的变量中使用变量?

来自分类Dev

PHP使用mysql在变量中发布变量

来自分类Dev

使用PHP图像缓存将带有URL的图像缓存到源

来自分类Dev

Nginx不创建缓存文件(使用uwsgi + php)

来自分类Dev

在PHP的Google Compute Engine中使用内存缓存

来自分类Dev

如何使用PHP或Javascript删除Microsoft Edge的缓存?

来自分类Dev

使用htaccess或php文件仅缓存静态文件

来自分类Dev

使用php缓存Sql表中的行并显示在HTml中

来自分类Dev

使用file_get_contents创建php缓存

来自分类Dev

使用变量进行PHP计算

来自分类Dev

在PHP中使用Jquery变量

来自分类Dev

使用PHP存储临时变量?

来自分类Dev

使用PHP全局变量