【发布时间】:2014-05-15 14:28:00
【问题描述】:
在我们的网络应用程序中,我们有一个包含许多组件的网页,每个组件都使用数据库中的数据进行渲染,服务器端缓存用于存储生成的组件以供将来请求使用。我们还为整个页面维护了一个全局的“最后修改”时间戳,这是最后一次更改此 Web 上的任何数据(数据库中),如果浏览器缓存有新版本,我们将返回 304 HTTP 响应。
总之,我们同时使用服务器端缓存和客户端缓存来提高性能。
在我们考虑部署新代码之前,这一切都很好。当部署新代码(比如 html)时,不仅客户端缓存无效,服务器端缓存也必须被清除。我们必须将上次修改时间设置为我们的代码部署时间,并清除服务器端缓存中的所有内容。 如果我们定期部署代码,这不是很理想。由于页面的数据库中的数据不会定期更改,因此我们希望缓存可以长时间工作。但是部署新代码违背了我们的目的。
在这种情况下我们应该怎么做?这里有任何“行业最佳实践”吗?
【问题讨论】:
标签: caching web deployment continuous-integration memcached