noo*_*yte 4 caching azure azure-appfabric
我已成功开始使用Azure AppFabric缓存服务,但我不确定创建DataCacheFactory对象的最佳实践方法是什么.现在我正在为缓存中的每次调用创建它,但显然这不是理想的做法...
有人建议要求单身人士.但我不确定我是否理解这将如何实现(不是实际的Singleton类,而是如何将它们组合在一起).
今天我有一个使用Ninject为我创建的CacheProvider类,我可以在其中执行Get/Put/Remove操作.对于这些方法中的每一个,我创建DataCacheFactory对象,然后调用.GetDefaultCache()来获取DataCache对象,我分别调用Put/Get/Remove.我在一个看起来像这样的方法中这样做:
private T Cache<T>(Func<DataCache, T> cacheAction)
{
using (DataCacheFactory dataCacheFactory = new DataCacheFactory())
{
DataCache dataCache = dataCacheFactory.GetDefaultCache();
return cacheAction(dataCache);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在很确定这不是那么聪明的想法,我应该通过Singleton获取DataCache对象,其中DataCacheFactory对象只创建一次.但是这个对象如何在请求之间存活?如何在Azure上使用> 1个实例?
希望这一切都有意义,而且比我更有经验的人(3个小时)可以帮助我.
Singleton对象存在于应用程序范围内.只需在全局静态级别声明私有DataCache对象,提供属性Get,如果该对象为null,则实例化该对象;如果该对象不为null,则返回该对象.
这样,每个应用程序回收只需支付一次仪表配置和连接缓存的费用.
每个实例都将实例化自己的DataCache对象,这没关系.
存储缓存的实际数据不会存储在本地计算机的内存中,而是存储在Azure的专用缓存服务器中,这些服务器是分布式的,速度很快.
| 归档时间: |
|
| 查看次数: |
1305 次 |
| 最近记录: |