我在一个不会经常更改的网站上显示大量数据。因此,我将数据缓存在 HttpRuntime.Cache 中,据我所知,它可以为网站的所有用户缓存数据。
但是,我还想提供在缓存数据过时时强制刷新的功能。由于数据是为所有用户缓存的,这意味着如果几个人同时使用该网站,它会影响到每个人。这是一种常见的模式吗?显示网站似乎是一种奇怪的行为,尤其是因为一个用户可以通过不断强制刷新缓存来减慢所有人的速度。进行客户端缓存仍然没有意义,因为所有用户的数据都是相同的。
我在一个不会经常更改的网站上显示大量数据。因此,我将数据缓存在 HttpRuntime.Cache 中,据我所知,它可以为网站的所有用户缓存数据。
但是,我还想提供在缓存数据过时时强制刷新的功能。由于数据是为所有用户缓存的,这意味着如果几个人同时使用该网站,它会影响到每个人。这是一种常见的模式吗?显示网站似乎是一种奇怪的行为,尤其是因为一个用户可以通过不断强制刷新缓存来减慢所有人的速度。进行客户端缓存仍然没有意义,因为所有用户的数据都是相同的。
我认为允许普通用户调用“清除缓存”操作的能力是粗心的。您的可缓存数据应该定义某种依赖关系。请参阅:缓存过期策略
缓存对所有用户可见的数据非常普遍,是一种很好的做法。然而,让用户能够刷新缓存是非常罕见的。更好的方法是在保存会更改缓存页面内容的数据时使缓存过期。
智能缓存失效意味着您的用户始终可以看到最新的数据,但他们也可以从您的缓存工作中受益。理想情况下,您只会使受更改影响的页面过期 - 而不是整个缓存。