关于CakePHP中缓存的问题

bak*_*ker 3 caching cakephp

我打算在CakePHP中使用缓存.我想知道如果我更新了我的表上的数据会发生什么,CakePHP会重新缓存我的数据吗?

提前致谢!

dec*_*eze 5

不是自动的,没有.

无论您缓存什么,都不会更改,直到它过期或更新它为止.这就是缓存的重点.诀窍是定义一个正确的过期时间帧和/或在想要立即反映的更改时删除/刷新缓存.

假设您有一个博客,并且需要缓存首页,因为它每次都会收到如此多的点击并且每次都会使数据库往返会导致服务器关闭.您可以无限期地缓存页面,只要您创建或编辑博客文章,就可以清理缓存以强制更新.

或者,假设您显示了一个不断更新的Twitter帖子列表,但由于Twitter强制更新频率限制,您无法每次刷新它们.在检查新帖子之前,您将使用限时缓存,例如10分钟.

或者,比如说,从数据库中提取一些信息的纯操作是非常昂贵的,所以你不想每次都这样做,但你总是需要最新的数据.在这种情况下,您可以进行一个小而廉价的查询,以确定自上次缓存数据后数据是否已更改(例如,获取modified某个记录的时间戳字段),并根据此信息决定是否启动更昂贵的操作或者只使用缓存的数据.

具体策略取决于您的情况.