缓存一般情况下用于数据库 *** 作的比较多.
如果此数据修改过多,不建议用缓存.一般是原始数据.其实写在程序的某固定地方作为静态变量出现我觉得也可以...
sqlServer系列有大量的索引等等 *** 作.优化后不一定比缓存差.
同类比还有session和application.
我举个例子查询数据库的例子看和你说的是不是一回事...
string cacheKey="yourKey" //缓存ID
object myObj= HttpContext.Current.Cache[CacheKey]//缓存对象
if(myObj==null)
{
//证明为空,再从数据库中查询
Datatable yourTable=yourSelect()
if(yourTable==null)
return null
else
{
HttpContext.Current.Cache.Insert(cacheKey,yourTable)//插入缓存
return yourTable
}
}
return myObj
使用SQLDependency缓存依赖,以下是一个推SQL缓存依赖的例子,当数据库更新后缓存会自动更新void Page_Load()
{
DataTable movies=(DataTable)Cache["Movie"]
if(movie=null)
{
SqlDataAdapter adpter=new SqlDataAdatper("Select * From Movie",sqlConnection)
SqlCacheDependency sqlDepend=new SqlCacheDependency(adapter.SelectCommand)
movies=new DataTable()
//注意必须在adpter.Fill()前先建立SqlCacheDependency,否则无效
adpter.Fill(movies)
Cache.Insert("Movie",movies,sqlDepend)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)