如果 MYSQL 数据发生变化,是否有办法触发 PHP 文件系统缓存立即失效?

发布于 2025-01-06 21:54:22 字数 388 浏览 1 评论 0原文

我在共享托管服务上有一个简单的站点,并且使用基本的 PHP 输出缓存(将 HTML 输出写入文件)。网站的数据不会经常改变,但是一旦改变了就只有我自己去修改,所以网站没有更新接口,因为不需要更新接口,我只是登录phpmyadmin界面,将修改作为SQL语句上传。

这种方法效果很好,唯一的问题是更改不会立即出现在站点上,只有当缓存时间到期时才会出现。有没有什么方法可以触发mysql的缓存失效,这样当我更改数据库中的数据时缓存就会被清除。例如,我可以在更新中添加一个 sql 行,如果可能的话,这将如何调用主目录中的外部程序,但是是吗?

如果不是,那么 MYSQL 是否有一些聪明的方法来通知 PHP 端有关数据更新的信息,而 PHP 不必连接到数据库(如果有页面的缓存版本,那么它会使用该版本而不连接到数据库,因为这就是重点)。

I have a simple site on a shared hosting service and I use basic PHP output caching (writing HTML output to files). The data of the site does not change often, but when it does then only I make changes, so the site has no update interface, because it does not need one, I simply log in to the phpmyadmin interface and upload the modifications as SQL statements.

This works well, the only problem is the changes do not appear immediately on the site, only when the cache time expires. Is there some way to trigger cache invalidation from mysql, so the caches are cleared when I change data in the database. For example, I could add one more sql line to the update which would somwehow call an external program in the home directory if it's possible, but is it?

If it's not then is there some clever way for MYSQL to notify the PHP side about a data update without PHP having to connect to the database (if there is a cached version of the page then it uses that and does not connect to the database, because that is the point).

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

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

发布评论

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

评论(1

迷爱 2025-01-13 21:54:22

是否有一些巧妙的方法让 MYSQL 通知 PHP 端数据更新,而 PHP 无需连接数据库

?没有,您不应该希望这样。

您可以在站点上编写一个特殊的 PHP 脚本,该脚本将使缓存失效,并在每次更新数据库时手动调用它。或者您可以将缓存存储在数据库中(而不是文件中)。

is there some clever way for MYSQL to notify the PHP side about a data update without PHP having to connect to the database

There is not, and you should not want this.

You may write a special PHP script on your site which will invalidate the cache, and call it manually each time you update the DB. Or you may store your cache in DB (rather than in files).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文