Pao*_*olo 6 php performance global-variables
我需要一个全局变量来跨请求保持不变
我知道类似的问题PHP Persist variable across all requests但我担心哪种解决方案性能更好,因为变量是global必须为每个请求设置的。
目前我能想到的解决方案有
1. 将值存储到数据库中。
但每个请求都会对数据库产生更多的影响。
2. 将值存储到文件中
但每个请求都会到达文件系统。在 *nix 系统上,磁盘访问被缓存,因此进一步的读取应该从 RAM 进行,因此不会影响驱动器。
3. 将值存储到 php include 文件中,并将该文件包含在 Web 应用程序的主入口点处。
该文件而不是变量的原始值将包含define
define("THE_GLOBAL", "ABC");
与 (2) 相同的问题加上由于 php 缓存处于活动状态,因此可能会发生在缓存刷新之前该值实际上并未更新的情况。
4.像redis一样使用nosql
我不喜欢为此设置redis。另外,该变量必须在 Web 应用程序重新启动或系统重新启动后保持不变。实现这一点需要额外的工作。
我认为最好的解决方案是(2)。但也许我错了。
任何有有效论据支持的指示或建议都将非常受欢迎。
我宁愿使用3:
包含 php 文件比读取文本文件更“优雅”(顺便说一句)
php 文件将同时由 *nix 文件系统和 php 操作码缓存进行缓存
您不会遇到操作码缓存的问题,因为当您通过管理后端编辑文件时,该文件将具有新日期......因此操作码将再次“编译”
如果您仍然担心,可以使用特定函数使缓存中的单个文件失效。如果您使用 PHP 内置 opcache,则可以在更改文件中的值之前使用opcache_invalidate(这是来自 php.net 的参考)。opcache_invalidate顺便说一句,需要PHP >= 5.5.0。
| 归档时间: |
|
| 查看次数: |
19104 次 |
| 最近记录: |