V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xjdata
V2EX  ›  问与答

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

  •  
  •   xjdata · 2016-02-16 08:00:57 +08:00 · 1999 次点击
    这是一个创建于 3215 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先谢谢大家.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    用 createObject ( Yii2 )或者 createComponent(Yii1.x)来调用,甚至直接作为 Yii::app()的全局 components 。
    xjdata
        9
    xjdata  
    OP
       2016-02-17 00:29:40 +08:00
    谢谢 各位 我根据自己的实际情况在多考虑考虑. 以后上线了.如果有什么变化 也回来更新或者和大家继续讨论下. 谢谢.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5788 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:44 · PVG 10:44 · LAX 18:44 · JFK 21:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.