php7使用什么缓存,PHP7 opcache缓存清理问题

PHP OPcache缓存预编译的字节码。这比使用PHP为每个HTTP请求加载和解析每个脚本要快得多。该缓存必须足够大以存储应用程序的PHP脚本的已编译代码,但又不能太大,以免使您无法将可用的RAM用于其他操作。

9a3144521ddeb8941a6472532d8c5836.gif

配置参数说明

zend_extension=opcache.so

opcache.enable=1 //启用opcache

opcache.enable_cli=1 //针对支持CLI版本PHP启动操作码缓存 一般被用来测试和调试

opcache.memory_consumption=128 //共享内存大小, 这个根据你们的需求可调

opcache.interned_strings_buffer=8 //interned string的内存大小, 也可调

opcache.max_accelerated_files=4000 //最大缓存的文件数目

opcache.validate_timestamps=1 //启用时间戳验证,配置opcache.revalidate_freq使用。设置0禁用,则必须手动重置OPcache或重新启动才能清除过期缓存

opcache.revalidate_freq=60 //60s检查一次文件更新

opcache.fast_shutdown=1 //打开快速关闭, 打开这个在PHP Request Shutdown的时候,会收内存的速度会提高

opcache.save_comments=0 //不保存文件/函数的注释

常见问题:

1.php文件发生改变,opcache没有失效,新内容请求不到

原因:opcache.validate_timestamps值为0,必须手动清理缓存,适合在生产环境中

下面的配置才会自动检测文件是否改变,如果改变opcache才会失效

opcache.validate_timestamps=1

opcache.revalidate_freq=0

2.手动清理缓存

重启php-fpm的进程

opcache_reset()和opcache_invalidate()

使用命令opcache_reset() opcache没有失效

当PHP以PHP-FPM的方式运行的时候,opcache的缓存是无法通过php命令进行清除的,只能通过http或cgi到php-fpm进程的方式来清除缓存。

结论:

1.本地开发建议关闭opcache,或者配置opcache.validate_timestamps=1和opcache.validate_timestamps=1

2.测试环境可以配置opcache.validate_timestamps=1和opcache.validate_timestamps=1

3.生产环境,根据发布方式而定:

3.1 切换软链接

opcache.validate_timestamps=1和opcache.validate_timestamps=1

3.2 文件覆盖

重启php-fpm

3.3 提供清理的脚步,发布后清理

3.4 提供清理某个文件的opcache http接口,限制访问

5.0

01

Post Views:

1,736

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值