是否有建议的方法来清除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);
});
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果您在配置中设置了DataCacheLocalCacheProperties,您仍然会从本地副本中提取项目,直到超时或通知发生.我仍然在寻找一种方法来立即使本地副本中的项目无效.