Session vs singleton模式

cho*_*obo 6 c# asp.net asp.net-mvc design-patterns

我有一个Web应用程序,我想从数据库中提取用户设置并存储它们以进行全局访问.将数据存储在Singleton或Session对象中会更有意义吗?这两者有什么区别?

将数据存储为对象引用还是将其分解为值类型对象(整数和字符串)更好?

tva*_*son 12

会话.这就是它的用途.会话存储在全局缓存(基本上是单例)中,由会话ID键入.这样,您只获得感兴趣的会话的数据.使用单例基本上会复制全局缓存,您必须重新发明机制以独立地检索每个会话的数据.

继续存储对象.让会话担心将其序列化为可以恢复的东西.但是,请注意您在会话中添加的内容.您不希望在那里存储太多数据,或者您将耗尽大量内存(假设内存缓存).


Dou*_*oug 5

会话对象,当然。

单例存在于进程级别。这意味着,如果您有 20 个用户在任何给定时刻访问您的网站,他们都会使用同一个单例对象。如果您不经常进行 Web 开发,则很难习惯这个概念。

会话存在于用户级别。这意味着您可以存储每个用户的数据,而不是每个进程的数据。