当前位置:  开发笔记 > 后端 > 正文

对简单的.NET分布式缓存解决方案的建议

如何解决《对简单的.NET分布式缓存解决方案的建议》经验,为你挑选了2个好方法。

我们有一台运行Windows Server 2003的服务器用于我们的生产Web服务器.我们的网站有不同的模块,每个模块都在自己的应用程序池中运行.这使缓存成为一个问题,因为每个模块都有自己的缓存,并且通常多个模块缓存相同的项目.问题是当缓存中的项目在一个模块中被更改时,另一个缓存相同项目的模块不能轻易刷新.

我们的站点是用ASP.NET 4.0编写的,我们使用标准的HttpRuntime.Cache对象作为简单的键/值存储来缓存数据集,业务对象,集合,列表等.我们不使用任何文件依赖项,但我们确实使用了时间到期.我们一次只有大约400个用户,所以我们没有做太疯狂的事情.

听起来某种共享/分布式缓存有助于解决这个问题,但我不确定使用哪一个或者是否更好地推出自己的,因为我们不需要大多数产品中提供的许多功能我见过.我已经看过一些使用WCF的例子,但大多数人建议不要在生产中使用他们的例子,我对WCF知之甚少.

我正在寻找一种简单,快速,轻便,安全的生产方式,如果可能的话,最好是免费的但不一定是免费的.它需要在Windows Server 2003上运行并与ASP.NET 4.0一起使用.

有什么建议或信息吗?



1> Marc Gravell..:

简单,快速,轻便,安全的声音,如redis和memcached,可以作为中央缓存非常有效.对于stackoverflow,我们通过BookSleeve(客户端)使用redis,但大多数商店的工作方式类似.还有一个AppFabric缓存,但这要复杂得多.

关键点:

您的数据需要以某种方式进行序列化

如果您当前正在使用大型对象的缓存(如大型DataTable),则需要考虑带宽影响,或者使其更加精细

您可能会受益于2层缓存(一个本地内存,中央存储作为辅助存储)

这意味着您还需要考虑失效(我们通过redis中的pub/sub API来实现)



2> Darin Dimitr..:

memcached和ASP.NET提供程序是一个受欢迎的选择.请记住,在.NET 4.0中,建议的缓存方法是使用新的ObjectCache而不是HttpRuntime.Cache..NET框架(MemoryCache)中有内置的内存实现,您也可以检查memcached的实现.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有