1

我有一个服务,我想在其上实现某种缓存,但我不确定我是否应该使用 .NET 4 的 ObjectCache 或者只是在服务上设置私有字段,一段时间后会刷新。

情况如下: 服务用于返回大块数据。目前,我们在数据库中查找对服务的每个请求的数据。此数据仅在每天午夜刷新一次。我想在服务上缓存这些数据,并在数据库更新后每晚刷新它(比如上午 12:30 左右)。

现在,在过去,我们将填充本地字段并创建一个“监控线程”,该线程将持续运行并在指定的时间后重新填充这些字段。我看到的一个缺点是服务类中有一些额外的代码用于存储。

如果我切换到 ObjectCache,一个好处是过期时自动删除。我想做的是为 CacheEntryRemovedCallback 委托分配一个回调方法,当它被调用时,只需在将来的某个时间重新缓存数据(刷新数据库后大约 30 分钟)。

我的问题是,对于 WCF 服务,缓存数据更理想的选择是什么?

4

1 回答 1

1

使用System.Runtime.Caching. 比国产自行车好。

SqlChangeMonitor如果您的数据仅在午夜更新,您可以使用。这将大大简化逻辑,并且您的缓存将与数据同步。

http://www.codeproject.com/Articles/167282/NET-4-0-MemoryCache-with-SqlChangeMonitor

于 2012-08-29T02:21:12.960 回答