是否有建议的方法来清除 DataCache 中的所有对象?
我可以使用 DataCache.GetObjectsByAllTags 方法,但这需要一个区域,我无法使用该区域,因为我需要在多个缓存主机之间共享对象。
最佳答案
DataCache 对象上没有简单的 .Clear(),但使用以下将清除 Appfabric 主机上的缓存:
/* 假设 DataCache 是正确设置的 Microsoft.ApplicationServer.Caching.Client.DataCache 对象 */
public void Clear()
{
Parallel.ForEach(DataCache.GetSystemRegions(), region =>
{
DataCache.ClearRegion(region);
var sysRegion = DataCache.GetSystemRegionName(region);
DataCache.ClearRegion(sysRegion);
});
}
问题是,如果您在配置中设置了 DataCacheLocalCacheProperties,您仍然会从本地副本中提取项目,直到超时或出现通知。我仍在寻找一种方法来立即使本地副本中的项目失效。
关于c# - appfabric 缓存清除所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412592/