1

我有一个管理应用程序,我在其中操作数据库中的对象,以及一个主要用于查看这些对象的公共 asp.net mvc 应用程序。

我已经为一些使用 HttpRuntime.Cache 的对象实现了一个简单的缓存。

我想从管理应用程序中使公共应用程序的部分缓存无效。

最简单的解决方案是创建一个 ClearCache() 操作,该操作在调用时清除缓存中的每条记录。

但是使用使用缓存依赖项的缓存不是更好吗?我不知道哪个最好用以及如何使用。我正在考虑一个 sql 依赖项,但是由于我正在缓存以跳过 sql 查询,所以我不确定这会很快。

检查 sql 缓存依赖关系慢吗?我希望在很多情况下使用缓存的对象,每次检查 sql 依赖项听起来都不好。

4

2 回答 2

1

您可以为此使用 CacheDependency。

如果有两个单独的应用程序。您可以使用文件依赖项选项。(还有缓存键依赖选项)

当您从应用程序中触摸特定文件(可能只是一个空文件)时。依赖于同一文件的其他应用程序缓存项将自动过期。

您可以使用不同的文件来使不同类别的缓存项过期。

于 2012-02-17T13:16:43.940 回答
0

我建议每个表都有 SQL 依赖项缓存,或者选择查询假设要一起处理的记录。您可以考虑为某些分区创建单独的缓存条目(例如,如果您有特定于国家/地区的数据,请将每个国家/地区的数据保存在具有适当 SQL 依赖关系的单独缓存条目中)。

于 2011-12-18T09:38:30.767 回答