当前位置:  开发笔记 > 编程语言 > 正文

ASP.Net中的数据缓存与会话对象

如何解决《ASP.Net中的数据缓存与会话对象》经验,为你挑选了2个好方法。

是否应将站点的动态业务对象存储在用户会话中或使用ASP.Net缓存(订单,配置文件信息等对象)?

我曾经使用会话来存储业务对象的网站,但我想知道......缓存有哪些优点或缺点?



1> tvanfosson..:

如果对象在用户会话之间可共享,则使用缓存.如果对象对每个会话都是唯一的 - 可能是因为它们受权限控制 - 然后将其存储在会话中.进程内会话本身存储在缓存中,因此决定因素确实应该是数据的范围.


另一个考虑因素是缓存数据生命周期所需的控制级别和粒度.会话根据全局会话状态超时期限将您限制为滑动到期策略.直接使用缓存可以进一步控制这些参数.

2> Anton Gogole..:

缓存只是 - 缓存.您永远不能依赖于那里的条目,因此不必在这方面做出任何假设:准备直接进入DB(或其他任何地方)来重新获取数据.

另一方面,会话更适合存储对象,但我个人试图避免使用会话存储来支持数据库.我通常通过抽象不透明的ISessionStoreService接口后面的存储来做到这一点:

interface ISessionStore
{
    T GetEntry(string key);
    void SaveEntry(string key, T entry);
}

然后"依赖注入"适当的实现,无论是InmemorySessionStore,DbSessionStore还是其他什么.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有