WisDom.Net  --数据缓存

1.几种缓存方式

      1.静态全局变量

C#静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。

2.System.Runtime.Caching 中缓存类库

这个是.Net 4.0新出的一个命名空间,提供缓存对所有 .NET framework 应用程序 (而不仅仅是 ASP.NET) 进行访问,高速缓存是可扩展的。您   可以创建自定义高速缓存提供程序。例如,您可以不使用默认的内存高速缓存引擎,而是创建自定义提供程序,在数据库、自定义对象或文件系统中存储高速缓存数据。具体参见MSDN.这里不展开讲

3.页面缓存,(显然这里不合适)

2.WisDom.net.DataCahce 设计构想

     

1.我们设计数据缓存基类如下。这里使用模板模式(附上基类的代码希望大家指正)

 public abstract class DataCacheCoomon<T>
{
protected List<T> DataCacheDict = null;
private static object _obj = new object(); public DataCacheCoomon()
{
if (DataCacheDict==null||DataCacheDict.Count == )
{
lock (_obj)
{
if (DataCacheDict == null || DataCacheDict.Count == )
{
DataCacheDict = new List<T>();
GetDataFromDb();
}
}
}
} protected abstract void GetDataFromDb(); /// <summary>
/// 增加数据缓存
/// </summary>
/// <param name="dataItem"></param>
public void AddDataCache(List<T> dataItem)
{
foreach (T data in dataItem)
{
DataCacheDict.Add(data);
}
} /// <summary>
/// 删除数据缓存
/// </summary>
/// <param name="dataItem"></param>
public void DelDataCache(List<T> dataItem)
{
foreach (T data in dataItem)
{
DataCacheDict.Remove(data);
}
} /// <summary>
/// 获取字典缓存
/// </summary>
/// <returns></returns>
public List<T> GetDataCacheDict()
{
return DataCacheDict;
} }

2.在具体某个缓存项目时都需要继承上面的基类

3. 使用并行方式将数据加到MemoryCache  中 示例如下(一个简单的例子给大家参考,)从缓存中获取

     ObjectCache objectCache = MemoryCache.Default;//

            Parallel.Invoke(() =>
{
CacheItem Iten = new CacheItem("aaa", );
objectCache.Add(Iten, new CacheItemPolicy());
},
() =>
{
CacheItem Iten = new CacheItem("Bbb", );
objectCache.Add(Iten, new CacheItemPolicy());
});

WisDom.Net 框架设计(三) 数据缓存的更多相关文章

  1. 游戏UI框架设计(三) : 窗体的层级管理

    游戏UI框架设计(三) ---窗体的层级管理 UI框架中UI窗体的"层级管理",最核心的问题是如何进行窗体的显示管理.窗体(预设)的显示我们前面定义了三种类型: 普通.隐藏其他.反 ...

  2. JavaScript框架设计(三) push兼容性和选择器上下文

    JavaScript框架设计(三) push兼容性和选择器上下文 博主很久没有更博了. 在上一篇 JavaScript框架设计(二) 中实现了最基本的选择器,getId,getTag和getClass ...

  3. WisDom.Net 框架设计(二) 服务总线

    WisDom.Net 框架设计--服务总线 1.Soa 简介     soa 就是面向服务的体系结构 是一个组件模型,不同的组件之间通过定义良好的接口联系起来.就像盖房子一块砖头一块砖头的砌墙,一片一 ...

  4. WisDom.Net 框架设计(五) 权限设计

    WisDom.Net --权限设计 1.需求分析     基本在所有的管理系统中都离不开权限管理.可以这么说,权限管理是管理系统的核心所在. 权限管理说白一些就是每个人能够做什么,不能够做什么.可以说 ...

  5. WisDom.Net 框架设计(一) 总体框架

    WisDom.Net总体框架 1.目标 WisDom.Net  做为以后快速开发相关的软件的基础框架,实现用户,权限,角色,菜单,和工作流的管理功能.相关功能可以独立使用,快速用于其他程序的开发.预计 ...

  6. WisDom.Net 框架设计(七) 验证框架

    WisDom.Net-验证框架 1.分类 这里我们将数据验证分为以下几种 数据类型校验      主要用于确保数据类型输入的正确  比如年龄一项输入 A岁 ,显然不合法 域检查             ...

  7. WisDom.Net 框架设计(八) 持久层

    WisDom.Net ---持久层  1.什么是持久层        持久层负责最基础的功能支撑,为项目提供一个高层,统一,和并发的数据持久机制,提供了比如建立数据库连接,关闭数据库连接,执行sql语 ...

  8. WisDom.Net 框架设计(四) 用户安全

    WisDom.Net  ----用户安全 1.用户单机登录 正如其名这里要求其实就是显示用户只能在一台电脑上登录.防止多处登录,这里简单的说一下实现原理,我们在这里使用session +cookie ...

  9. WisDom.Net 框架设计(六) license

    WisDom.Net-license 1.为啥要用license    license (许可证) 顾名思义就是说我的软件只能给在指定的机器上使用.毕竟很多项目都不是免费的,(说句题外话,其实我用的也 ...

随机推荐

  1. h.264并行解码算法2D-Wave实现(基于多核共享内存系统)

    cache-coherent shared-memory system 我们最平常使用的很多x86.arm芯片都属于多核共享内存系统,这种系统表现为多个核心能直接对同一内存进行读写访问.尽管内存的存取 ...

  2. 【HDOJ】2255 奔小康赚大钱

    最大二分图匹配,O(n^3). /* 2255 */ #include <iostream> #include <algorithm> #include <cstdio& ...

  3. 【HDOJ】1422 重温世界杯

    简单题. #include <stdio.h> #define MAXN 100005 int wi[MAXN], li[MAXN]; ]; int main() { int n, tot ...

  4. 在代码中创建Drawable资源

    如何在代码中创建圆环: 先看效果图 代码; import android.graphics.drawable.GradientDrawable; GradientDrawable circle = n ...

  5. C#编程技术层次

    不谈具体领域(比如搜索,视频,网络等),单就编程语言这个垂直方向,大体上对它有一个如下的层次划分. 1. 基本运用C#语法,在各种工具和示例代码的支持下,完成一些基本程序任务 2. 熟练掌握面向对象与 ...

  6. iOS开发:使用Tab Bar切换视图

    iOS开发:使用Tab Bar切换视图 上一篇文章提到了多视图程序中各个视图之间的切换,用的Tool Bar,说白了还是根据触发事件使用代码改变Root View Controller中的Conten ...

  7. 一个awk命令的demo

    /prefix_* | awk -F'\x3' '{print $2}' | awk -F'\x2' '{for(i=0; i<NF; i++)print $i}'> ~/20140819 ...

  8. 600字读懂 Git

    译注:来自 Hacker School 的 Mary Rose Cook 实现了一个纯 JavaScript 写就的 Git:Gitlet,包含了最主要的一些命令.这个项目一是为了了解 Git 内部原 ...

  9. Counting - SGU 117(快速幂)

    题目大意:求下面N个数里面有多少个数的M次方能整除K 代码如下: ======================================================== #include&l ...

  10. Java宝典

    本人最近参加了几家公司的面试,在其中发现了不少笔试题,虽然是平常再简单不过的,但一不小心还是会出错.今天特意找时间写下来和大家分享. 1.访问控制符权限问题.   同一个包中 同一个类中 不同包的子类 ...