在我们的程序中,我们将大量数据存储在缓存中。缓存是一个字典。由于大量数据是内存中的,我们计划使用数据库而不是字典。因此,字典中曾经的所有数据都将被移动到数据库中的表中。现在的问题是,字典缓存已在项目的许多地方使用。请建议我一个设计模式,用最少的代码更改有效地用数据库替换字典缓存。
缓存将类似于Dictionary(字符串,MyBusinessObject)。字典键将是“Id”。 MyBusinessObject将拥有其属性中的数据。例如,myBusinessObject.CustomerName,myBusinessObject.CustomerAge。在我的整个项目中,各种模块将在字典中搜索Id(密钥)。
答案 0 :(得分:9)
Dictionary实现IDictionary<TKey, TValue>
您应该在数据库上创建一个也实现IDictionary<TKey, TValue>
的外观,然后确保不再使用具体的字典。最后,您需要为新抽象创建一个工厂,这将允许您将其替换为模拟测试。
答案 1 :(得分:3)
您考虑过PersistentDictionary了吗?它是基于ESENT数据库引擎构建的开源Dictionary
。您可以使用最多可存储16TB的Dictionary
。