3

在我们的程序中,我们将大量数据存储在缓存中。缓存是一个字典。由于大量数据在内存中,我们计划使用数据库而不是字典。因此,曾经在字典中的所有数据都将被移动到数据库中的表中。现在的问题是,项目中很多地方都用到了字典缓存。请建议我一种设计模式,以最少的代码更改有效地用数据库替换字典缓存。

缓存类似于 Dictionary(string, MyBusinessObject)。字典键将是“Id”。MyBusinessObject 将在其属性中包含数据。例如,myBusinessObject.CustomerName、myBusinessObject.CustomerAge。在我的整个项目中,各种模块都会在字典中搜索 Id(键)。

4

2 回答 2

9

字典实现了IDictionary<TKey, TValue>你应该在数据库上创建一个外观,它也实现了IDictionary<TKey, TValue>然后确保你不再使用具体的字典。最后,您需要为新的抽象创建一个工厂,这将允许您将其替换为用于测试的模拟。

于 2013-04-24T16:55:48.683 回答
3

您是否考虑过PersistentDictionaryDictionary它是建立在 ESENT 数据库引擎之上的开源软件。你可以使用Dictionary它可以存储多达 16TB。

于 2013-04-24T17:16:57.000 回答