我正在使用Windows Azure共享缓存。我遇到了一些问题:windows azure:共享缓存 - 全部删除?
- 如何知道缓存中存在哪些密钥?有没有像
GetAllKeys()
方法? - 可以给
clearAll()
打电话吗? - 为什么我不能使用区域?
谢谢。
我正在使用Windows Azure共享缓存。我遇到了一些问题:windows azure:共享缓存 - 全部删除?
GetAllKeys()
方法?clearAll()
打电话吗?谢谢。
本部分适用于Windows Azure的缓存
的Windows Azure提供了两种类型的缓存模式:
如何知道缓存中有什么?有没有像“GetAllKeys()”方法?
您是否需要这些信息为您的报告/审计更多的应用? 我认为,微软并没有提供这种方法,原因很简单:它返回的信息可能会在不久后过时。请参阅缓存项目可能随时过期(取决于将项目添加到缓存的过期时间和时间),因此您将从GetAllKeys()方法收到的信息可能无效秒或甚至毫秒后。
高速缓存使用标准模式将
Null
然后创建一个项目,并把/添加到缓存中同位角色缓存
是否有可能clearAll()?
我不认为你应该担心清除缓存。如果您将缓存逐出策略设置为LRU(Last Recently Used),那么最近最少使用的项目将首先被丢弃。所以你永远不会得到任何像“缓存中没有空间”。
为什么我不能使用regoins?
你可以,但只能用高速缓存定位在相同的实例。专用角色缓存不支持它。
此部分适用于Windows Azure的共享缓存
Windows Azure的共享高速缓存是从视图客户端点非常相似到Windows Azure缓存(如上所述)和所有的解释适用于共享缓存也。
物品驱逐有一个小的变化: 在共享缓存中,没有特定到期时间的物品将在48小时之后过期。但是,您可以添加项目到缓存(通过的Add
和Put
方法的各种重载)有明确的到期时间,如X分钟或Y天。
如果您超出缓存的大小(高速缓存大小您创建时选择),缓存服务将启动“逐出项目”在缓存中,直到内存问题得到解决(你有足够的内存来添加新的缓存项目)。在“驱逐” LRU机制用于 - 在缓存中最近最少使用的项目被删除。
获取,检查并重新创建处理缓存项目的方法(上述)也适用于共享缓存。
我希望这将有助于你更好地理解Azure的缓存和共享缓存。
以下方法清除高速缓存中的所有数据。
public static void InvalidateCache(string cacheName)
{
DataCache desiredCache = new DataCache(cacheName);
foreach (string regionName in desiredCache.GetSystemRegions())
{
desiredCache.ClearRegion(regionName);
}
}
非常感谢你! – socksocket
非常欢迎。我忘记补充的一件事是Windows Azure发展非常迅速,在接下来的几个月里你可以有很多改进。 – Tom
问题是关于Windows Azure共享缓存。你在这里描述的是Windows Azure缓存。 –