日期:2014-05-19  浏览次数:20465 次

刚开始学习.net 2.0的缓存机制,有些问题请教
1
在web.config文件中的那一段代码是不是轮询的目的,在SQL2000中因为没有监测机制,所以要加上来,如果是SQL2005中的话,是不是就不需要添加这一段代码。代码如下:
<caching>
<sqlCacheDependency   enabled= "true "   pollTime= "10000 ">
<databases>
<add   name= "MSPetShop4 "   connectionStringName= "SQLConnString1 "   pollTime= "10000 "/>
</databases>
</sqlCacheDependency>
</caching>

2
在查询的时候,如果有这个CACHE[所有结果]的话,就直接返回这个数据,没有的话,把这个查询出来的数据加入到CACHE中
在新增的时候,删除CACHE[所有结果]。
在更新的时候,删除CACHE[所有结果]、CACHE[当前记录]
在删除的时候,删除CACHE[所有结果]、CACHE[当前记录]
这样处理对不对?
但是如果不是查询所有结果呢?如果是根据某些条件来查询的话,这个CACHE就会有很多,应该怎么弄?相应的新增、更新、删除的时候又怎么弄?如果参数是一个实体类的实例的话,又怎么处理?

3
服务器查询出来的数据加入到CACHE中,这个CACHE是放在客户端还是服务端的呢?保存到内存中还是磁盘上呢

?如何设定保存到内存或者是保存到磁盘上呢?

4
在使用CACHE机制的时候,要注册一下,同时数据库中会加入一个表,专门监测相应表中数据的变化。那么这个数据是在什么时候用到的呢?因为我觉得有了删除和新增CACHE之后,不再需要这个表了。

5
在页面中一定要加入OUTPUTCACHE吗?这个页面输出CACHE机制是不是和之前说的SQLCACHE机制是两回事?哪个更常用

------解决方案--------------------
学习~~!友情UP
------解决方案--------------------
学习帮顶
------解决方案--------------------



webcast视频,苏鹏



------解决方案--------------------
.NET版块讨论的氛围都没有.
------解决方案--------------------
也在学习中。。
------解决方案--------------------
1. 是。看文档即可。我不使用SQL Server数据库。我使用的数据库自己可以在.net中提供缓存机制,以及提供每一个对象的版本信息,所以我自己做了一个CacheDendency。

2.查询是对的。但新增、更新、删除都是错的,直接修改数据库,然后几百毫秒之后依赖于数据库表的缓存自动消失了,不需要你去删除。关键的一点就是:缓存是自动小时的,不需要你去删除。

3. Cache存在与服务器内存中。另外,Cache会根据内存使用情况自动清除缓存的数据。因此不要以为只有到时间,或者数据库改变之类的原因才会删除缓存数据。

4. CacheDependency系统使用的,跟你没有关系。不能你觉得没用就没用。不知道原理的时候不要做结论。

5. 之前你哪里说过SQLCACHE呢了?你只说sqlCacheDependency嘛。页面的OutputCache中可以使用sqlCacheDependency。
------解决方案--------------------
学习

------解决方案--------------------
2
缓存有过期时间和依赖项,你可以编程实现

3
服务端
但是我查看msdn有这样一段话,会同时缓存在服务器和ie的缓存中,不知道这一段是不是只针对asp.net的cache

?如何设定保存到内存或者是保存到磁盘上呢?
.net框架设计的作者说,该功能是调用windows api某些功能实现的,不知道是否为真,意思是ms在.net没有重新书写该功能


5 ,并非一定要在加在页面,你可以加在后置代码中,如这样
[PartialCaching(900, null, "country;PostTime;KeyWords ", null)]
public partial class TradeShows_TControls_TradeshowList : WebCategoryShare
{

}
上面的意思是按contry,posttime,keywords三个控件进行缓存



------解决方案--------------------

学习,有相关资料希望大家贴出来`
------解决方案--------------------
学习。
补充其他人没说的:

3,内存,原来beta版有一个关键字可以设定保存在磁盘上,后来正式版取消了。
看苏鹏的视频时候注意。
------解决方案--------------------
顶,学习了,不知道还有其他要注意的吗