相对于仅仅在HttpCache中保留一个大的对象缓存并使用linq to objects来查询内容而言,使用某种NoSQL数据库有什么优势吗?
我们有一个5000种产品的列表,需要根据地理位置,用户偏好等提供给用户。规范的产品数据存在于一个关系数据库中,我们不打算改变这一点。我们有一个存储过程,它返回给定客户的有效产品Ids的大列表,但我们不希望为每个客户重新加载每个产品的开销。(为什么在db服务器和web服务器之间发布相同的产品描述?)
因此,我们只需从缓存中获取给定产品Ids列表的产品详细信息。
我们第一次尝试缓存产品时,由于糟糕的查询设计和缓慢的垃圾收集,应用程序进行了多次ToList()调用,从而导致了巨大的内存使用量。
我正在考虑构建一个新版本,如果有任何关于NoSQL数据库是否比仅仅使用linq to objects有任何实际优势的建议,我将不胜感激。
发布于 2011-04-06 22:37:08
如果您的关系数据库是SQL Server,则可以使用Notification Services,并使用带有EnableCaching="True"和CacheDuration="Infinite"的SqlDataSource来存储产品列表。这种方法的优点是,只有在产品列表被修改时,您才能往返于数据库。
看看这个article,它解释了Notification Services是如何工作的。
发布于 2011-04-06 22:45:26
在5000个对象中,HttpRuntime.Cache是一个很棒的NoSQL数据存储。
https://stackoverflow.com/questions/5567916
复制相似问题