我正在尝试创建缓存依赖项以使我正在使用 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 是否会为我优化任何东西,或者客户端是否会实际设置数百个连接以这种方式使用数据库。