似乎很久以前就已经问过这个问题了,但是我读过的所有问题都没有达成任何普遍的共识或证实的结论。所以....
我有一个.NET 3.5应用程序框架,它由以下节点组成:
框架完全符合要求,我的响应时间很长/可接受。但是,我需要将这些响应时间降低到尽可能低的水平。一个显而易见的解决方案是实现缓存很少变化的配置数据(节点#3)。
缓存模型的关键要求是:
由于框架不是Web应用程序,因此无法使用System.Web.Caching
(这是我所阅读的一般建议)。将MS Enterprise Framework添加到项目中仅仅是为了缓存应用程序块功能似乎有点过分(我听说MS正在弃用它,因为.NET 4现在有System.Runtime.Caching
)。使用.NET 4并因此System.Runtime.Caching
然后还有另一个方面需要考虑。配置数据来自SQL数据库,这将执行自己的常用数据缓存。所以也许根本不需要缓存?这就是说DB和Service驻留在单独的服务器上,因此在服务器上的内存缓存将消除服务器和DB之间网络通信的开销。
所以问题是你会建议缓存模型,如果有的话?目前我倾向于自己写作,但如果可以避免这种情况,我就全都听见了。
修改
在查看MS Enterprise Library之后,似乎这可能是一个可行的解决方案。它符合大多数要求,并不过分复杂。今天下午我打算做一些线程测试,以确保它按预期工作。我确实遇到的问题是:这个图书馆制作是否准备就绪还是更多的技术演示?
答案 0 :(得分:1)
如果您在一台服务器上,那么我会使用MS Enterprise Library Caching Block。它在prod环境中工作正常。如果你进入多个服务器,那么我会转向像memcached这样的东西。