我有一个Web服务器和一个数据库服务器。 Web服务器上有一个WCF服务和一个使用它的网站。网站请求来自WCF服务的数据,WCF服务连接到数据库服务器,获取数据并将其返回到网站。
为了优化此过程并减少对WCF服务的调用,我决定在Web服务器上手动缓存数据。我能想到的一个选择是Microsoft Sync Framework。但后来我意识到我必须自己创建一个同步框架来实现我的目标。因为Microsoft Sync Framework不为我的进程提供任何选项。我的过程实际上是这样的:
所以我想问的是,这种技术有效吗?如果是,是否有任何替代方法可以快速实现这项技术?或者我必须手动编写所有代码?
答案 0 :(得分:1)
在某些情况下它可能很有效,但我可以建议您在本地SQL Server Express而不是Compact中使用presreve数据缓存。
SQL Server Compact的类型系统与SQL Server不同。我知道EF6支持两者,但我不会自己开始这个旅程......
在任何情况下都应该有理由说明为什么需要使用cache throwgh RDBMS ..
答案 1 :(得分:1)
它可以工作,但如果是我,我的目标是提高性能/缓存您的Web服务器和后端SQL服务器之间的调用,我不会选择sql server compact edition用于缓存目的。< / p>
redis或memcached之类的内容可能是提高缓存层性能的更合适/更高性能的方法。紧凑的SQL Server可能会减少对后端服务器的调用次数,但它可能会以较慢的响应时间为代价。
答案 2 :(得分:1)
通过使用memcache可以提高性能。
这些是实现memcache的步骤
您必须创建一个窗口服务,它将从数据库中检索数据并以JSON格式存储在内存缓存中(键值对)。
对于网站创建处理程序文件作为API,将从内存缓存中检索数据并显示结果。
我已经在我的一个项目中实现了它,它以毫秒为单位检索数千个数据
答案 3 :(得分:1)
您还可以使用NHibernate二级缓存。有关更多信息,请阅读本文http://www.codeproject.com/Articles/529016/NHibernate-Second-Level-Caching-Implementation。它将数据存储在MemCache中,并检测记录的更改。
另一种缓存技术是AppFabric,您可以在此处查看更多详细信息:http://msdn.microsoft.com/en-us/library/ff383731(v=azure.10).aspx