请问 php 项目中的常用配置,大家都是怎么处理的.

2016-02-16 08:00:57 +08:00
 xjdata

首先谢谢大家.

请问各位在自己的项目中都是怎么处理配置文件的.

比如我现在有个 key=>value 的配置, 大概 1200 个左右. 我使用 yii2 框架.

每次框架启动 都会加载所有的配置文件, 因为比较多了. 所以有点担心 项目正式上线后会有问题. 比如同时在线人数多了. 这样比较多的配置, 每次消耗的内存会不会比较大.

请问各位都是怎么处理的?
1. 就放配置里
2. 缓存
3. 数据库
4. ???

我的项目正式上线,预估同时在线峰值不到 1k 用户.

请各位分享一下比较好的解决方式.谢谢.

1927 次点击
所在节点    问与答
9 条回复
baiyuxiong
2016-02-16 08:36:09 +08:00
你想多了
yrdr
2016-02-16 08:36:40 +08:00
首先,在线峰值 1k 对于一个个人站来说也是不俗的成绩了,但放到大环境来说,这点量也是不值一提的.
所以配置信息放文件或内存缓存里都是可以的,不推荐直接从数据库读取,但你可以将配置文件存储到数据库,然后读取的时候写入缓存(文本 or 内存),改变配置的时候再重新从数据库读取就行了
squid157
2016-02-16 08:40:15 +08:00
不会
jevonszmx
2016-02-16 09:11:56 +08:00
配置文件建议别放数据库,因为相比其他的,大数据下,数据库更容易成为瓶颈。

如果是自己的服务器的话,建议 php 环境开启 apc/opcache ,这样就会显著提高 php 文件加载速度和性能。而且程序也不用做什么改动,风险最小。
orFish
2016-02-16 09:41:01 +08:00
缓存到内存。
mikej
2016-02-16 09:57:20 +08:00
可是试试 yac
tabris17
2016-02-16 09:57:36 +08:00
写成 php 的 array 来加载,如果开启了 opcache 性能不会差

如果没有 opcache 优化, php 读取 serialized 数据性能会比加载 array 更好。

要是配置是经常变化的,最好加载到外部缓存,比如 memcache 、 redis 什么的
jarlyyn
2016-02-16 10:01:25 +08:00
说明你不熟 yii 的思路……

做 module,给每个 module 做配置文件,使用时加载。

yii 还有基础类给你加载配置文件的。

配置的问题不是内存问题。而是每次调用的时候都会执行一遍。

所以 yii 特地采用类似 lazyload 的方式来处理的。

如果不想写这么复杂的话,那么把配置放在各个组建里,或者单独建个类。

用 createObject ( Yii2 )或者 createComponent(Yii1.x)来调用,甚至直接作为 Yii::app()的全局 components 。
xjdata
2016-02-17 00:29:40 +08:00
谢谢 各位 我根据自己的实际情况在多考虑考虑. 以后上线了.如果有什么变化 也回来更新或者和大家继续讨论下. 谢谢.

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

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

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

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

© 2021 V2EX