111,098
社区成员




public 店主 Search(string id)
{
var key = "小店店主信息:"+ id;
var cache = System.Runtime.Cache;
var result =(店主)cache[key]
if(result == null)
{
result = 读取数据库加载店主资料(id);
cache.Insert(key, result);
}
return result;
}
这里的 cache.Insert 其实第 3、4、5 个参数才是缓存技术,而 cache.Insert 只是一个最基本的入门概念。从参数 3 开始,可以控制缓存的最长存活时间、是从创建时计时还是从最后一次访问后计时,是根据文件修改来自动清除还是根据数据库表的修改来自动清除这个 result 缓存单元,或者根据别的缓存单元的改变而自动级联地清除缓存。
懂得缓存的CacheDependency 设计才是懂的缓存设计,也就是说缓存设计的技术点在于你关心的这类“清除缓存”的技术上。那么假设一个系统有1000万小店主以及员工信息,平常还存在内存里的(上述 Search 方法缓存到内存里的)对象也不过只有几十个、几百个,怎么可能吧1000万人员信息不断地 copy 到内存里边来呢?