Sitecore is already smart enough to do cache clearing automatically. But in many cases, we might need to do manually clear different cache for particular items. We can do partial cache clear as below for any item we want whether it is in Prefetch Cache, Data Cache, Item Cache, StandardValue Cache, HTML Cache, etc.
Let's see how we can clear different cache.
Let's see how we can clear different cache.
Clear Item level Cache - Prefetch Cache, Data Cache, Item Cache, Standard Value Cache
Suppose, we want to clear Prefetch cache, Data Cache and Item Cache for /sitecore/content/Homepage/string itemPath = "/sitecore/content/Homepage/"; Item home = Sitecore.Context.Database.GetItem(itemPath); public void ClearItemLevelCache(home) { // Clear item's Item Cache Sitecore.Context.Database.Caches.ItemCache.RemoveItem(home.ID); // Clear item's Data Cache Sitecore.Context.Database.Caches.DataCache.RemoveItemInformation(home.ID); // Clear item's Standard Value Cache Sitecore.Context.Database.Caches.StandardValuesCache.RemoveKeysContaining(home.ID.ToString()); // Clear item's Prefetch Cache CacheManager.GetSqlPrefetchCache(home.Database.Name).Remove(home); } public static Cache GetSqlPrefetchCache(string database) { return Caching.CacheManager.FindCacheByName("SqlDataProvider - Prefetch data(" + database + ")"); }
Clear Sitewise Cache
Suppose, we want to clear cache for Context site.SiteContext site = Context.Site; public void ClearSiteCache(SiteContext site) { SiteCaches siteCache = site.SiteCaches; // Clear HTML Cache siteCache.HtmlCache.Clear(); // Clear Registry Cache siteCache.RegistryCache.Clear(); // Clear ViewState Cache siteCache.ViewStateCache.Clear(); // Clear FilteredItemsCache siteCache.FilteredItemsCache.Clear(); // Clear XSL Cache siteCache.XSLCache.Clear(); }
Clear other Sitecore level Cache
Similarly we can also clear PathCache, AccessResultCache, etc. as below:Caching.CacheManager.GetPathCache(Sitecore.Context.Database).Clear(); Caching.CacheManager.GetAccessResultCache().RemovePrefix(database.Name);Sitecore.Caching.CacheManager provides all functions for getting and clearing all caches.
No comments:
Post a Comment