我正在尝试创建缓存依赖项以使我使用ASP.NET缓存缓存的某些文档到期。我想出了这个:
public class DocumentCacheDependency : CacheDependency
{
private readonly IDisposable _Subscription;
public DocumentCacheDependency(IDocumentStore store, string docId)
{
_Subscription = store.Changes().ForDocument(docId).Subscribe(OnDocumentChanged);
FinishInit();
}
private void OnDocumentChanged(DocumentChangeNotification documentChangeNotification)
{
NotifyDependencyChanged(this, new EventArgs());
}
protected override void DependencyDispose()
{
_Subscription.Dispose();
base.DependencyDispose();
}
}
这是一个好主意,还是应该使用“ForDocumentsStartingWith”/“ForAllDocuments”。或者我应该创建一个索引。 答案可能取决于缓存的文档数量,所以我想我的问题是,当我注册数百个更改侦听器时,RavenDB是否可以为我开箱即用,或者客户端实际上会设置连接数量以这种方式使用db。
答案 0 :(得分:2)
你可能最好不要这样做。 RavenDB已经为你做了缓存而不需要任何费用。