关于缓存. Cache和Session 问题
现需要将一定容量的数据集(System.Data.DataSet缓存到当前请求, 以节约数据库服务器开销. 实际上缓存的数据用于Repeater的分页操作. 缓存可采用服务器端缓存(Cache)和Session方法. 现有以下疑问不得解决:
1. 如果使用Cache, 那么对于相同应用下的多个并发用户. 是否相同键(Key)的Cache会共用? 如果是, 则会造成数据上的混乱.
2. 如果使用Session, 则不会有以上问题, 那么Session的内部机理, 是否会将所有数据发送到客户端做为Cookie保存. 因为需要缓存的对象是一个DataSet, 所以一旦容量较大则会影响客户端性能. 也会给数据发回带来不便.
3. 目前我的解决方法是给Cache地Key加上唯一的SessionID前缀. 这样就不会有第一个问题. 然而如果并发用户过多, 系统是否会准确及时地回收这些资源而不会造成性能下降?