我计划开发一个Web服务,需要使用内存缓存,有哪些.NET可用的不同缓存框架?我已经使用了Microsoft Enterprise Library Cache block,并评估了适用于分布式环境的NCache。
我的核心要求是缓存数据的可靠性,如果工作进程重新启动,我考虑使用Enterprise Lib Cache块DB数据存储进行持久化。
还有其他选择吗?
你的缓存是一个易失性数据存储器,你应该编写你的软件,以便它预计缓存不可用。例如:
public DtoThing GetSomeData(string parameters)
{
if (<check cache for data> == <not there>)
return <get data from persistent store>
else
return <get data from cache>
}
我有使用微软的企业库缓存块的经验,并且它对我来说很好用。EntLib的配置有时可能会有点冗长,但它可以完成工作。您为什么要寻找其他解决方案?
针对这种类型的问题有许多潜在的解决方案。您提到了NCache;如果您有时间,请查看Oracle Coherence,这是NCache试图复制的产品 ;-)
我的建议是,除非您需要分布式缓存的好处,否则使用单进程内存缓存会更简单。
而且,如果您感兴趣,这里有一次早期关于NCache起源的讨论:http://www.theserverside.com/news/thread.tss?thread_id=43950