我有一些(小尺寸)表,保存在Table Storage中,我只用于读取。 当我的服务开始时,我想读取所有表,将数据保存在数据结构(即List)中,并从那里读取该列表。 有没有办法做到这一点,或者我每次需要数据时都必须从表存储中读取? 如果有方法,List应该在哪里声明,以及它应该在哪里初始化?
感谢。
答案 0 :(得分:1)
Azure缓存可能是最佳途径,但成本显而易见。
您是否可以将WCF服务声明为单例并将数据存储为静态属性?
答案 1 :(得分:0)
您可以使用Windows Azure缓存服务来存储数据。见http://www.windowsazure.com/en-us/home/tour/caching/
答案 2 :(得分:0)
如果列表不是太大,则可以使用Windows Azure缓存组件http://www.windowsazure.com/en-us/home/tour/caching/。在服务的初始化过程中,从表中读取信息并将其存储在那里。您还要询问列表应声明和初始化的位置。您是否还在Windows Azure上托管您的服务?这是IIS上的Web服务运行还是Windows服务?您是否使用WCF公开您的服务?
答案 3 :(得分:0)
我看到其他人建议使用静态属性(不错的选择)和Azure Chache。无论如何,如果数据不经常更新,则最好缓存数据,而不是每次都从表存储中读取数据。
我想给我两分钱:
如果数据足够小(1MB对我来说足够小),我不会使用Azure Cahce。静态属性可以完成工作。但是.NET 4.0也有一些新东西,很明显在大多数程序视图中都没有。它是System.Runtime.Caching命名空间。我还没有预先使用它,但它似乎对小型本地缓存有好处。您可以使用MemoryCache对象并将数据存储在内存中。并且,当然程序与任何其他类型的chache相反 - 在财产的吸气器中,检查chache中是否存在数据。如果存在 - 返回它。如果不存在 - 从表中检索,存储在chache中,然后将其返回。