IIS6中ASP.. NET 2.0应用程序缓存-大量数据的数据存储选项和性能
本文关键字:数据 存储 选项 性能 NET ASP 缓存 应用程序 IIS6 | 更新日期: 2023-09-27 18:01:39
. NET 2.0网站上的IIS6我想在应用程序缓存中存储键/值对。每个Key将始终是一个长度为5个字符的字符串,每个Value将始终是一个长度为15 - 250个字符的字符串。
使用场景是每个网页请求都会查询一次缓存,如果Key存在,则使用Value,否则查询数据库并向缓存添加新的Key/Value或根据某些应用程序逻辑替换现有条目。
在这个场景中,我设想/要求缓存大小达到大约1000个条目,这个大小将变得稳定,并且很少(如果有的话)如上所述进行更改。
在我只是"性能测试它自己"之前,是否有人有任何经验的大量缓存数据,是否更适合性能:
(1)使用1个包含SortedDictionary<string, string>
或
(2)允许创建1,000个缓存对象,并使用缓存本身作为字典或
(3)对于所讨论的数据量来说,这并不重要。在哪种情况下,如果条目数量增加到10,000或100,000,您的答案会改变吗?
许多谢谢。1000不是大数据量;这将很好地工作,但是如果在请求之间共享此数据,则需要考虑同步问题。实际上,使用lock
来访问Dictionary<string,string>
可能很好,不过如果需要,可以更细粒度。
然而,内置的web缓存(HttpContext.Cache
)也将解决同样的问题,并具有所有的线程安全内置。
不要使用SortedDictionary<,>
,除非你很关心数据是排序的。我不认为你知道。
随着数字越来越大,我更倾向于考虑像redis/memcached这样的存储,用本地内存作为本地快捷方式。