我计划开发一个web服务,我需要在内存缓存中使用,有哪些不同的缓存框架可用于.NET,我已经使用了微软企业库缓存块,还评估了分布式环境下的NCache。
我的核心需求是缓存数据的可靠性,我正在考虑使用Enterprise Lib Cache块DB数据存储来持久化,以防工作进程重新启动。
有什么选择吗?
发布于 2010-03-05 02:09:58
你的缓存是易失性的数据存储,你应该写你的软件,使它预期缓存是不可用的。例如:
public DtoThing GetSomeData(string parameters)
{
if (<check cache for data> == <not there>)
return <get data from persistent store>
else
return <get data from cache>
}
如果您使用数据库作为缓存的后备存储,那么基本上您已经放弃了使用缓存的所有好处。当您说缓存需要可靠时,您是说更新需要一致,还是数据需要始终在缓存中?如果是前者,只要您以这样一种方式编写软件,就很容易确保发生这种情况:只有一条路径来更新数据,然后该路径可以在成功执行对持久性数据存储的写入时使缓存无效。
发布于 2012-09-10 17:20:09
您可以签出GigaSpaces XAP.NET,它是内存数据网格中的一个完全分布式的事务,它可以充当缓存以及其他许多功能。它也可以是您的实际应用程序服务器,它允许您以分布式方式部署应用程序以及分布式缓存。它是高度可用的、自我修复和自我管理的网格,您可以按需扩展和引入。
免责声明-我为GigaSpaces工作。
发布于 2010-03-05 01:33:18
我有使用微软的Enterprise Library Cache Block的经验,它对我来说工作得很好。EntLib配置有时可能有点繁琐,但它可以完成工作。你在找别的东西有什么特别的原因吗?
https://stackoverflow.com/questions/2381366
复制相似问题