C#:在内存中加载大字典并从多个应用程序访问它

C#:在内存中加载大字典并从多个应用程序访问它,c#,C#,对于性能问题和每秒的大量点击,我需要使用dictionary在内存中添加大约4GB的数据,并使用dictionary键从多个应用程序访问数据。这些数据可以随时更新 使用C#创建此场景的最佳方法是什么?程序设计为隔离以实现稳定性和安全性 数据库是为并发用户设计的 如果它是单个应用程序,则可以使用静态,并且它由类的所有实例共享。在这种情况下,您正在寻找一个分布式缓存,因为您希望通过多个应用程序访问数据,并且多个应用程序无法访问内存中的数据。此外,Redis确实有很多很好的C#驱动程序,其中一个就是嗯

对于性能问题和每秒的大量点击,我需要使用dictionary在内存中添加大约4GB的数据,并使用dictionary键从多个应用程序访问数据。这些数据可以随时更新


使用C#

创建此场景的最佳方法是什么?程序设计为隔离以实现稳定性和安全性

数据库是为并发用户设计的


如果它是单个应用程序,则可以使用静态,并且它由类的所有实例共享。

在这种情况下,您正在寻找一个分布式缓存,因为您希望通过多个应用程序访问数据,并且多个应用程序无法访问内存中的数据。此外,Redis确实有很多很好的C#驱动程序,其中一个就是

嗯,我不确定我是否会这样设计我的应用程序,但你可以使用它在应用程序之间共享数据


考虑使用上述数据库之类的替代方案。

最佳标准是什么?到目前为止,你尝试/探索了哪些方法?你的问题太宽泛了,不可能给出这样的答案。简短的答案是,使用缓存产品。考虑ReDIS。使用一个数据库来处理大量的数据并允许多个用户。我主要关心的是性能的一个例子,关于如何将字典添加到内存映射文件中,以及如何用键(不是所有文件)读取它。我认为MMF是最好的解决方案。上面的链接没有回答如何将大型字典添加到内存映射文件并从另一个应用程序读取此字典中的特定值的问题。有1000种方法可以以错误的方式执行此操作,这就是为什么我告诉您可能要查看数据库或Rahul提到的Redis,请查看。在你不理解的情况下把代码扔到这里肯定不会对你有帮助。这是一个示例,这样多个应用程序就不能访问Redis了?