缓存的优势VS会议

存储在会话的DataTable VS缓存之间的区别是什么? 的优点和缺点?

所以,如果它是返回结果的数据表,并绑定到一个gridview一个简单的搜索页面。 如果用户搜索和用户B的搜索,是它更好地将其存储在会话,因为每个用户最有可能有不同的结果,或者我还可以存储每个它们在高速缓存搜索还是那个没有意义,因为只有一个缓存。 我想基本上是我想说的是,将缓存被覆盖。

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

一个重要的区别是,在该缓存项目可以在指定的时间量之后期满(将被从缓存中移除)。 项目投入会议将呆在那里,直到会议结束。

ASP.NET还可以从缓存中删除项目时可用内存量变小。

另一个区别:会话状态可以保持外部(状态服务器,SQL服务器)和你的Web应用程序(用于负载平衡)的几个实例之间共享。 这是不与高速缓存的情况。

除了这些差异(如其他人指出):会话为每个用户/会话,同时缓存每个应用程序。

AFAIK,关键的区别是会话是针对用户,而高速缓存将成为应用程序范围内的项目。

正如在其他的答案说,你可以为每个高速缓存中的用户信息存储,提供您提供一个键(或者通过会话或饼干)。 然后,你有更多的控制,对到期它们在缓存中的项目,还可以设置依赖关系。 因此,如果有问题的数据表将改变定期,那么缓存可能是一个合适的选择。 否则,如果它是静态会话可能更合适。 史蒂芬·史密斯拥有出色的视频缓存在dnrtv这是值得一试。

这真的取决于你想要达到多少时间你有什么。 还有一些其他的替代品就考虑到如何在应用程序中存储状态。 根据多大的表,你可以考虑存储在cookie中的状态(加密,如果是敏感的信息)。 另外,如果是应用程序范围内的数据,你冷使用静态字段的网页或程序类。 有应用程序对象以及。

更新:我认为最关键的问题,你要问自己,是谁应该可以看到这个数据。 他们要经常访问的数据? (不,不打扰)。 难道是要改变? (不,使用静态字段或应用程序)。 它是可以接受的用户A和用户B看到同样的结果? (不,使用的用户名和搜索词的关键,包括缓存)。 (是的,使用通过搜索词的一个关键缓存)。

老实说,虽然,如果你不远处沿着你的发展,我会考虑停车缓存/状态问题以后再说 - 你甚至都不需要它。 性能优化的前三个规则是:1。测量,2.测量更多一些。 3.测量一次...

高速缓存是配备减少次获得的数据片段的数量的目的中的应用范围。 会议是在以给特定的用户状态为目的的用户的会话范围。

那么这取决于你如何有会话配置ASP.NET。 你存储会话在数据库或内存? 如果在内存中,你使用的是单独的服务器或您使用的是当前Web服务器会话?

根据事情是如何为你设置可能会影响性能,当你使用类似数据表,它告诉我,你也许储存大量的数据。

此外Session是存储每个用户,每个用户检索自己的会话票证手段不是被存储在一个会话cookie或网址,如果他们不接受cookies和您已经设置了ASP.NET为无Cookie模式。 凡是您缓存将在应用程序级别缓存,将提供给这可能是也可能不是你想要的所有用户会话。

Session是每个用户,缓存是应用程序。

在缓存中的项目能够而且将会自动根据到期时间删除(滑动或固定)和IIS工作进程的内存限制。

所以基本上在缓存器的项目从来没有肯定存在,但会议将呆在那里,直到会议结束。

存储在每个用户的基础上(通过会议或创造性地利用缓存的)项目可能会导致大量的内存使用情况,并应慎重考虑。

在这一切之上,如果重置IIS工作进程,你可以失去你的缓存和会话。

看到这个答案。

会话可以杀死你的应用程序的性能,除非你使用类似的memcached或速度有些后端供应商。 一般来说,你应该避免它。

第一节使用特定的缓存的地方是没有的。 这篇文章是有帮助的。

另外一个重要的区别, 会话状态将被阻止 ,如果并发异步Ajax请求的执行,这会影响性能

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.405 (s). 10 q(s)