暂存对象
什么是暂存对象,它和Session有什么区别吗?哪儿个更有有时一点 --------------------编程问答-------------------- --------------------编程问答-------------------- Cached数据逻辑设计上,你必须保证它不是肮脏的,也就是说尽量保证缓存与原始数据的一致性,当原始数据改变时,缓存数据必须清除或者刷新。有很多种缓存依赖手段,例如SqlDependency 类就是用来保证当SQL Server数据表修改时依赖于它的所有Cached数据在很短时间内(通常是500毫秒)都自动清除。
有些号称会用缓存编程的人,不理解缓存依赖控制手段,以为缓存的控制就是使用一个Duration时间长度来控制,这是不懂缓存编程的。 --------------------编程问答-------------------- 跟Session没有什么直接关系。Session更多地是用在同一会话不同的消息事务中保存内存变量,而数据缓存则是用来对低速的持久化数据的查询结果进行高速缓存(当重复同样的查询条件时不要再去访问数据库而是直接拿出内存中的缓存数据)。
asp.net环境是经常自动重启的,当你编程时你应该假设平均每隔5~10分钟就自动重启。所以不要滥用Session来保存那些需要持久化保存的对象。
不要把大量、用不到的对象缓存起来,那种把整个数据表都缓存起来的做法通常都是极端错误的,因为你必须保证后台数据库中这个数据表中任何改动都要触发缓存进行清理或者刷新,于是大量根本用不到的数据反而要被反复读取出来。看似简单清晰的对整个数据表的缓存其实是滥用缓存的。应该以《查询条件,结果集》这对数据中的前者为缓存关键字,缓存结果集,面向应用来考虑缓存,跟数据库的任何设计都没有关系。 --------------------编程问答-------------------- 具体来说,假设一个查询是:查询2009年7月10号所有买过血燕窝的人的资料,另一个查询是:查询去年的最优秀的VIP(贵宾)资料,这两个查询可能在很多页面甚至同一页面的不同地方都要反复查询,并且不同终端用户经常并发请求这两查询,显然缓存可以将应用的运行速度提高100倍以上。这两个缓存中尽管有重复的客户资料,但是没有关系,他们都应该是独立的缓存数据。
与之对照地,如果把十几万客户资料一次性地读到内存中,这则是滥用缓存,跟上述应用还差得很远。 --------------------编程问答-------------------- 每日尾随SP1234接点口水沫是我在CSDN的最大乐趣。。。。 --------------------编程问答--------------------
那我就尾随你吧..
补充:.NET技术 , ASP.NET