• 热门专题

HttpRuntime.Cache缓存数据

作者:  发布日期:2014-04-18 18:14:43
Tag标签:缓存  数据  
  •  public static class DataTableCaches
        {
            #region 属性方法过时记录器 2012-01-10 李云
            /// <summary>
            /// 给静态属性设置一个过期时间——用于数据库表缓存
            /// </summary>
            private static DateTime dTableTimer;
            /// <summary>
            /// 给静态属性设置一个过期时间——用于数据库表缓存
            /// </summary>
            public static DateTime DTableTimer
            {
                get { return dTableTimer; }
                set { dTableTimer = value; }
            }
            public static int hour = 0;//web.config时间配置转换
            #endregion
    
            #region 表数据缓存
            public static void SetUzaiDataTabaleCache(string key, object value)
            {
                if (HttpRuntime.Cache[key] == null || DateTime.Now > DTableTimer)
                {
                    if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["static_cache"]) && int.TryParse(ConfigurationManager.AppSettings["static_cache"], out hour))//是否链接外数据库Static
                        DTableTimer = DateTime.Now.AddHours(hour);//给静态属性设置一个过期时间
                    else
                        DTableTimer = DateTime.Now.AddHours(2);
                    HttpRuntime.Cache.Insert(key, value, null, dTableTimer, TimeSpan.Zero, CacheItemPriority.Low, null);
                }
            }
            /// <summary>
            /// 表数据缓存
            /// </summary>
            public static void SetUzaiDataTabaleCache(string key, object value, int hours)
            {
                if (HttpRuntime.Cache[key] == null || DateTime.Now > DTableTimer)
                {
                    DTableTimer = DateTime.Now.AddHours(hours);
                    HttpRuntime.Cache.Insert(key, value, null, dTableTimer, TimeSpan.Zero, CacheItemPriority.Low, null);
                }
            }
            #endregion
    
    
        }


     List<TravelProductInfo> listTravelProductInfo = new List<TravelProductInfo>();
                string cacheName = "TravelProductInfoSelect";
                if (HttpRuntime.Cache[cacheName] == null)//没有缓存 即时查询
                {
                    List<TravelProductInfo> list = m_ProductDAL.TravelProductInfoSelect();
                    if (list != null && list.Count > 0)
                    {
                        foreach (TravelProductInfo model in list)
                        {
                            listTravelProductInfo.Add(new TravelProductDAL().TravelProductDetatilSelect_B5M(model));
                        }
                        DataTableCaches.SetUzaiDataTabaleCache(cacheName, listTravelProductInfo, 4);//产品每4小时更新一次
                    }
                }
                else
                {
                    listTravelProductInfo = HttpRuntime.Cache[cacheName] as List<TravelProductInfo>;
                }


About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规