当前位置:  开发笔记 > 编程语言 > 正文

Asp.net - 用于存储字典的缓存与静态变量

如何解决《Asp.net-用于存储字典的缓存与静态变量》经验,为你挑选了1个好方法。

我正在建立一个包含许多部门和类别的网上商店.它们存储在我们的数据库中并经常访问.

我们正在使用URL重写,因此几乎商店中的每个请求都会生成查找.我们还需要经常迭代数据以生成主存储和部门页面的菜单.

这些信息不会经常更改,因此我认为我应该将数据库加载到字典中以加速信息检索.

我知道标准做法是将数据加载到应用程序缓存中,但是我假设在缓存期间出现了某种级别的序列化,对于大型数据结构,我认为开销会很大.

我对此的冲动是将字典放在一个相关类中的静态变量中.但是我想在此获得一些输入输入.我认为这种方法会更快吗?这是一种可怕的做法吗?有没有更好的方法让我失踪?

我似乎无法找到关于此的更多信息,我真的很感激您可以分享的任何信息.谢谢!



1> LorenVS..:

Application和Cache集合不会序列化您传递给它们的对象,它们存储实际的引用.无论对象有多大,从Cache中检索对象都不是一项昂贵的操作.始终坚持使用Cache对象,除非你有充分的理由不这样做,这只是一个很好的做法.

唯一值得一提的是确保您考虑对此集合进行多线程访问.如果你没有正确锁定,你很快就会遇到一些严重的问题


只需确保,如果您使用的是应用程序或缓存,则它们是每台计算机.如果你有多台机器(例如web farm)那么你就麻烦了......你需要使用可扩展的缓存解决方案,例如Microsoft Velocity或MemCacheD('D'代表守护进程).
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有