出于性能原因,db中的HttpSession存储

时间:2013-01-17 10:08:56

标签: performance nosql httpsession

假设我们有一个面向性能的应用程序在集群中工作。它包含了很多用户。众所周知,会话复制得很差,因此应用程序可以很难扩展。当然最好的方法是创建应用程序为无状态。 (节点之间没有序列化) 但我的问题是:当我们决定将HttpSession保存在某些存储器中时,例如Redis或memcached?

您认为在某些nosql实例中保留HttpSession是一个好主意吗?

谢谢

1 个答案:

答案 0 :(得分:1)

内存数据库有两个主要缺点:

  1. 他们的容量仅限于服务器机器的RAM(他们可以通过交换存储更多数据,但这几乎会使他们失去目的)
  2. 当他们因任何原因失败时,所有数据都将丢失
  3. 所以问题是:你的会话数据有多重要?当您丢失用户的sesson数据时,要么是因为必须删除它以为更新的会话腾出空间,要么是因为必须重新启动数据库服务器,这意味着什么?他们只需要重新登录,还是会丢失有价值的数据?

    请注意,还有memcacheDB,它就像memcached一样工作(字面意思是!它被设计用作替代品)但是备份磁盘上的所有数据。当数据丢失不可接受时,这是Memcached的一个很好的替代方案。