Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Удалить элементы кеша по префиксу ключа
|
|||
|---|---|---|---|
|
#18+
Всем привет, Как можно удалить из кеша все елементы, которые начинатся с заданного префикса? Можно ли то сделать так чтобы не перечислять все их? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 14:56 |
|
||
|
Удалить элементы кеша по префиксу ключа
|
|||
|---|---|---|---|
|
#18+
А>Как можно удалить из кеша все елементы, которые начинатся с заданного префикса? Только так смог сделать, ничего получше не придумал: public static void InvalidateUserRoles(string userId) { Cache cache = HttpContext.Current.Cache; // If no user id defined - remove roles of all users of all privileges if (userId == null) { StringCollection keysList = new StringCollection(); // Get all the keys from the cache to remove foreach (DictionaryEntry entry in cache) { string k = entry.Key as string; if (k != null && IsUesrRoleCacheKey(k)) keysList.Add(k); } // Remove all the keys from cache foreach (string rolesKey in keysList) cache.Remove(rolesKey); } else { string key = GetUserRolesCacheKey(userId); cache.Remove(key); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 10:54 |
|
||
|
Удалить элементы кеша по префиксу ключа
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Аноним, Вы писали: А>Всем привет, А>Как можно удалить из кеша все елементы, которые начинатся с заданного префикса? А>Можно ли А>то сделать так чтобы не перечислять все их? А>Спасибо. /*protected*/ public static Cache Cache { get { return HttpContext.Current.Cache; } } /*protected*/ public static void PurgeCacheItems(string prefix) { prefix = prefix.ToLower(); List<string> itemsToRemove = new List<string>(); IDictionaryEnumerator enumerator = BizObject.Cache.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Key.ToString().ToLower().StartsWith(prefix)) itemsToRemove.Add(enumerator.Key.ToString()); } foreach (string itemToRemove in itemsToRemove) BizObject.Cache.Remove(itemToRemove); } ...... PurgeCacheItems("Products_ProdTitles"); PurgeCacheItems("Products_Product_" + id.ToString()); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2006, 18:27 |
|
||
|
Удалить элементы кеша по префиксу ключа
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Аноним, Вы писали: А>Всем привет, А>Как можно удалить из кеша все елементы, которые начинатся с заданного префикса? А>Можно ли А>то сделать так чтобы не перечислять все их? А>Спасибо. Когда добавляешь объекты с таким префиксом в кэш, можно дать им в качестве CacheDependency какой нибудь файл clearcachefactor.txt. положи его куда нибудь подальше чтоб его никто не трогал, сделай readonly. а когда нужно очистить кэш от объектов с этими префиксами, просто пересохрани его или создай заново. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 12:54 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=836&tid=1387841]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 369ms |

| 0 / 0 |
