我正在尝试使用C#找到管理内存中大量数据的最佳方法,而无需访问数据库。 (当数据库成为最终信息时,数据库将用于存储这些信息的一部分)
当我说“大量数据”时,我说的是数百兆字节,我想管理一个复杂的结构,而不仅仅是像数百万条记录的表格。
我需要尽快在其中搜索,我需要能够在它们过时时删除它们中的一部分。
幸运的是,我可以将这些数据拆分成不需要以某种方式关联的组...所以我不需要在数百万之间找到或更新一行,但是找到一个组之间的东西就可以说50,000另外,搜索,添加和删除该组中的数据,并在它变得过时时删除所有组。
我有一些项目已经在内存中管理数据,但没有那么大,所以我不知道这些方法是否也适用于这种情况: - 我使用.Net缓存对象,但我从未使用过10或20兆字节 -private static List data = new List();我以xml格式存储了数据组,但我从未使用过超过几兆字节的数据 -datatable对象,一个用于组,在最后一种情况下,我从未使用超过10兆字节,我遇到了管理访问的问题,因为数据表不是线程安全的
管理这种情况的最佳方法是什么? Windows或.Net框架的任何限制都会给我带来问题吗?
答案 0 :(得分:0)
使用内存将数据存储在数据结构中并使用数据时,您应该没问题。权衡的是内存将不可用于在同一服务器上运行的其他应用程序。此外,当您尝试将数据从内存提交到磁盘/数据库时,大数据所需的时间更长。
根据您的数据,必须定义结构。如果数据不是相互关联的,则应为每个实体创建不同的对象。
您还需要设置策略来升级/刷新缓存。它可以是每小时,每天,每周;根据您的需要。