因此,在我的 WCF 服务中,我将缓存一些数据,以便将来对服务进行的调用可以获得该数据。
WCF 中缓存数据的最佳方式是什么?怎么做呢?如果有帮助,WCF 服务是多线程的(并发模式是多的)并且 ReleaseServiceInstanceOnTransactionComplete 设置为 false。
检索此数据的第一次调用可能不存在,因此它将从某个源(可能是数据库,可能是文件,可能在任何地方)获取数据,但此后它应该缓存它并使其可用(理想情况下,使用过期系统物体)
想法?
当 SOA 应用程序使用的数据保存在对频繁事务不可扩展的存储中时,它就无法有效扩展。这是分布式缓存真正有用的地方。回到你的问题和 ErnieL 的回答,这里是这些解决方案的简要比较,
就 Memcached 而言,如果您的应用程序需要在一组机器上运行,那么您很可能会从分布式缓存中受益,但是如果您的应用程序只需要在单台机器上运行,那么您将不会受益使用分布式缓存的任何好处,使用内置的 .Net 缓存可能会更好。访问 memcached 缓存需要进程间/网络通信,与进程中的 .Net 缓存相比,这将产生较小的性能损失。Memcached 作为外部进程/服务工作,这意味着您需要在生产环境中安装/运行该服务。同样,.Net 缓存不需要此步骤,因为它们是在进程中托管的。
如果我们比较 NCache 和 Appfabric 的功能,NCache 的人对他们与 AppFabric 比较的功能范围非常有信心。关于这两种产品的比较,你可以在这里找到足够的材料,比如这个......
http://distributedcaching.blog.com/2011/05/26/ncache-features-that-app-fabric-does-not-have/