2015-08-11 01:43:01 2557次浏览 3条回答 0 悬赏 100 金钱

大家好,缓存有文件缓存,或者一些内存缓存。 目前已经初步掌握。

我在params-local.php文件中设置了一些数组。
问题是

  1. 如果params-local.php的内容是加载进内存的,请问是每一个访客访问站点,就会在内存中加载一次,还是所有的访客公用这个内存呢?
  2. 如果是每个请求占用一些内存,那这部分内容直接放入内存缓存,是不是可以避免此类重复占用内存的情况?
  3. 我搜到一片关于opcache的文章,大概说明了,可以通过opcache解决我上面的节省内存想法。 请问大家都是怎么处理,一些相对本地环境不会变化的内容的呢?(PS,YII2目前还没有支持opcache,只有APC、memcache,ridus等。可能是因为yii2最低要求5.4,而php在5.4的时候zend还没发布opcache吧)
  • 回答于 2015-08-11 09:40 举报

    我理解的,这种对访客无区别的内容,如果是加载到内存中,应该只占用一次空间。

    yii里有参数可以指定针对不同的用户做不同的缓存。没指定默认是对所有用户生效。

  • 回答于 2015-08-11 10:51 举报

    params-local.php的内容放入内存缓存了?没有吧!
    如果放入内存,是通过什么方式放入的?

    php运行的时候,每次都会将代码编译一次,编译成机器码
    opcache做的是将这机器码缓存,那么同一个程序下次再执行的时候,就不用再编译
    所以,opcache是服务器级别,是在服务器上php配置里设置,对所有php程序生效

  • 回答于 2015-08-11 11:49 举报

    想必 楼主是个完美主义者.... = =,

    opcache 开启之后, 就可以帮你进行 编译缓存 , 不只是params-local.php 其他php文件也被缓存opcode, 减少zend编译消耗.

    对于params-local.php中的配置数组,
    你当然可以通过你说的redis,memcache等缓存到内存,
    只是yii在读取配置文件时, 还没有初始化好各种组件, 操作起来不是很方便,

    你非要说 我不依赖yii ,自己去连接redis, memcache.... okay ,, you win

您需要登录后才可以回答。登录 | 立即注册
xjdata
CEO

xjdata

注册时间:2011-12-07
最后登录:2021-07-09
在线时长:112小时28分
  • 粉丝23
  • 金钱14169
  • 威望75
  • 积分16039

热门问题