请教 PHP 存取大量预设映射数据的最佳实践

2021-02-11 10:29:53 +08:00
 goodboy95
最近刚接触 PHP,手里有一套远古时期的源码,里面有一个点击按钮切换状态的功能,使用了大量这样的语句:if ($a == 1) { $a = 2; } else if ($a == 2) { $a = 7; }……,加起来能有上万个 if,看着实在有点不舒服,于是就将其改为了 array 。结果改完了之后才发现 php 的变量在请求结束后就会清空,每一次请求都要初始化一遍 array 。

想问一下,就像这种在代码运行期间不会修改的映射数据,PHP 业界上一般都是怎么处理的?以前写 C#和 Java 的时候用惯 static 变量了,如果让我用 redis 啥的总感觉还是有那么一点点慢。

(补充一下,这个点击按钮切换状态的功能是这套源码的核心功能,估计至少 50%的请求会落在这上面)
942 次点击
所在节点    问与答
3 条回复
GGGG430
2021-02-11 10:37:26 +08:00
将 array 序列化 serialize 后,放在 apcu 里面,这是个代码层面的内存缓存
eason1874
2021-02-11 10:38:37 +08:00
硬编码,内存缓存,配置文件
carlclone
2021-02-11 14:27:36 +08:00
fpm 的 worker 是常驻的,扩展只初始化一次,还可以写成 c 扩展🐶

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/752908

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX