将Redis用于小型Gorilla会话是否有意义

时间:2014-08-29 14:22:30

标签: session cookies go

在我看来,只要您只想存储简单的值,例如上次访问的时间戳以及会话中的用户ID,那么使用Redis作为会话持久性就没有意义了。大猩猩会议,因为他们似乎无论如何都将它存储在客户端的cookie中。

我在这个假设中是否正确?

我知道存在大小限制,而且如果我要将会话存储在文件中(其他可用的存储选项与大猩猩会话一起),则无法扩展到该机器以外但是,是整个"会话商店"大猩猩会话cookie商店没有问题吗?

是的,我在这里已经看过这个问题了,不,它没有解决这个问题所以它不是重复的。 What is the advantage of using Gorilla sessions custom backend?

1 个答案:

答案 0 :(得分:3)

使用Redis(或任何其他服务器端存储)可以帮助避免一整类问题,即:

  1. 大型cookie大小增加每个请求的开销 - 即使每个请求额外的4K也可以在移动连接上大量使用。
  2. 严格降低cookie数据在服务器端存储时被操纵的风险。
  3. 能够在会话中存储超过4K的内容(即来自多步骤表单的表单数据)
  4. ......并且在Redis'例如,能够轻松使服务器端会话过期(使用mySQL或文件系统存储更容易出错。
  5. 仍然需要cookie,因为它必须存储标识符,以便用户可以与其服务器端会话相关联。这对于大猩猩/会话来说并不是特别的,并且几乎是所有其他服务器端会话实现的行为。

    如果您认为您的用例很简单,那么请坚持使用基于cookie的会话。 gorilla / sessions可以很容易地在以后更改后备存储。