Зависит от памяти вашего сервера и от того, насколько вы обеспокоены этим. База данных всегда хороша для такого рода вещей, потому что у вас есть лучший параллелизм и более стабильный способ хранения ваших данных.
Я рекомендую вам использовать скользящий срок действия для кэшированных данных, скажем, 10-20 минут или около того. Таким образом, вы не будете использовать столько ресурсов сервера, потому что по мере того, как пользователи станут неактивными, их данные сеанса будут удалены.
В качестве примера того, как выполнить скользящее кэширование с истечением срока действия (также ссылается здесь ), вы можете сделать это:
public static void AddToCache(string key, Object value, int slidingMinutesToExpire)
{
if (slidingMinutesToExpire == 0)
{
HttpRuntime.Cache.Insert(key, value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.NotRemovable, null);
}
else
{
HttpRuntime.Cache.Insert(key, value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(slidingMinutesToExpire), System.Web.Caching.CacheItemPriority.NotRemovable, null);
}
}