ASP.NET应用程序级缓存的设计思路与实现

来源:互联网 发布:活着 知乎 编辑:程序博客网 时间:2024/05/16 11:27
【如果有现成的开源或免费缓存组件,要告诉我哦】

背景

页面包含许多需要显示数据库数据的控件,每次打开页面的效率都很低

目标

  1. 减少页面响应时间,从而提高用户访问速度
  2. 缓存应在用户访问页面之前起作用,而不是像ASP.NET窗体/用户控件缓存那样随用户访问被动创建
  3. 能提供全局的缓存策略配置
  4. 不同的控件各自拥有不同的缓存空间、过期时间及数据更新逻辑

实现

  1. 定义一个应用程序全局缓存服务类,提供加载缓存策略配置按配置初始化缓(按即调用实现上述接口类的缓存初始化方法访问公共缓存的静态方法
  2. 定义一个接口,向应用程序全局缓存服务提供缓存初始化键值获得的方法调用原型。凡继承此接口的类,在应用程序启动时可由应用程序全局缓存服务初始化缓存
  3. 定义一个数据集架构(xsd),提供缓存配置的持久化数据模型,数据保存于使用此架构的xml文件
  4. 制作一个窗体(或用户控件),提供应用程序缓存服务的运行时管理界面
应用程序全局缓存服务的类定义:
    /// <summary>
    
/// 应用程序全局缓存管理。
    
/// </summary>

    public class CacheManager
    
{
        
public static void InitCache()
        
{
            
// 初始化Cache
        }


        
public static object LoadCache(string key)
        
{
            
// 获取Cache中的数据,由key生成访问键值
        }


        
public static void SaveCache(string key, object data)
        
{
            
// 将数据存入Cache,由key生成访问键值
        }


    }

接口定义:
    /// <summary>
    
/// 向应用程序全局缓存服务提供原型方法调用。
    
/// </summary>

    public interface ICachedControl
    
{
        
string CacheKey get; }
        
object GetData();
    }


未完待续
原创粉丝点击