Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP环境下基于文件的缓存_Php_Caching - Fatal编程技术网

PHP环境下基于文件的缓存

PHP环境下基于文件的缓存,php,caching,Php,Caching,我一直在为一个项目使用,它通常工作得很好。但有几次,它的缓存,即普通的php文件(参见等人),已经被“归零”,即整个缓存文件已经变成了一大块空值 与其试图找出文件变为NULL的原因,我认为最好将缓存策略更改为更具弹性的策略 所以我想知道你是否有什么好主意,什么是好的解决方案;我一直在看,我也在想,我只是把一个序列化数组保存到文件中,而不是像现在这样保存纯php;但我不确定我应该针对什么方法 我很感谢大家对这一技术领域的深入了解,因为我知道从性能的角度来看这是一个复杂的领域。您所描述的似乎是php

我一直在为一个项目使用,它通常工作得很好。但有几次,它的缓存,即普通的php文件(参见等人),已经被“归零”,即整个缓存文件已经变成了一大块空值

与其试图找出文件变为NULL的原因,我认为最好将缓存策略更改为更具弹性的策略

所以我想知道你是否有什么好主意,什么是好的解决方案;我一直在看,我也在想,我只是把一个序列化数组保存到文件中,而不是像现在这样保存纯php;但我不确定我应该针对什么方法


我很感谢大家对这一技术领域的深入了解,因为我知道从性能的角度来看这是一个复杂的领域。

您所描述的似乎是phpbrowscap中的一个bug。你可以检查是什么引起的

无论如何,phpbrowscap的策略是相对合理的,因为通过将缓存写入PHP文件,它还可以利用操作码缓存


然而,我认为最好的策略是序列化对象,并将其结果放入类似APC的内存缓存中。另一种可能的策略是在扩展中实现功能,扩展总是在内存中。

您所描述的似乎是phpbrowscap中的一个bug。你可以检查是什么引起的

无论如何,phpbrowscap的策略是相对合理的,因为通过将缓存写入PHP文件,它还可以利用操作码缓存


然而,我认为最好的策略是序列化对象,并将其结果放入类似APC的内存缓存中。另一种可能的策略是在一个扩展中实现该功能,它总是在内存中。

当我想到它时,我可以看到两个php进程交互更新(在我的例子中是创建)时可能出现竞争情况。我想知道一个普通的集群是否足够。当我考虑它时,我可以看到当两个php进程介入更新(在我的例子中是创建)时可能出现的竞争条件。我不知道一只普通的羊群是否足够。