当线上php代码更新之后如何清理掉之前缓存的opcode?

发布于 2022-09-01 23:58:03 字数 36 浏览 20 评论 0

当线上php代码更新之后如何清理掉之前缓存的opcode?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

徒留西风 2022-09-08 23:58:03

opcache.validate_timestamps 默认是OFF

  • OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。

opcache.revalidate_freq 单位 默认为 2

  • 检查脚本时间戳是否有更新的周期,以秒为单位。 设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。

从官方文档来看:
opcache.validate_timestamps 设置为 True
opcache.revalidate_freq 设置为一个适当的值,如30 这个时间根据服务器压力灵活调整。

上面设置后,最差情况代码更新30秒后会生效,最快立即生效。

始终不够 2022-09-08 23:58:03

opcode有缓存时间,等待其过期即可。

思念绕指尖 2022-09-08 23:58:03

opcache.validate_timestamps默认是1(开启),但建议在正式环境中建议是设置成0(关闭)。这样能优化IO查询性能。但带来的后果就是每次更新文件时需要手动清理缓存。目前有两种方法清理:

  • 在根目录建立一个php文件,里面包含<?php opcache_reset();?> ,通过http请求(浏览器)来运行(最好限制下本地IP运行),因为opcache_reset在某些模式下不支持cli模式,所以为了统一,最好都通过http请求运行
  • 用这个工具 Cachetool
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文