【问题标题】:What is the advantage of using Gorilla sessions custom backend?使用 Gorilla 会话自定义后端有什么优势?
【发布时间】:2014-05-24 19:34:23
【问题描述】:

我想使用 Redis 进行会话管理。
但我不知道使用 Redis 作为 Gorilla 会话包的自定义后端与直接使用相比有什么优势?

Gorilla 会话包链接:http://www.gorillatoolkit.org/pkg/sessions

【问题讨论】:

    标签: go redis session-cookies gorilla


    【解决方案1】:

    只要您遵守所提供的界面,Gorilla 会话提供了一种连接存储系统以进行会话管理的方法。目前,他们为您提供了两个开箱即用的商店。一个是FilesystemStore,它遵循在服务器文件系统上简单地存储和检索基于会话的数据的接口。 CookieStore 作为另一种选择,读取和写入浏览器内置的 cookie 系统以使用另一种方式完成相同的事情。

    Gorilla 会话确实与 Redis 无关,但知道这一点,您可以轻松地将自己的会话存储与 Gorilla 一起使用,前提是您构建了一个遵循 Gorilla 会话 Store interface 的 RedisStore。这实际上完全取决于您的能力以及您在会话存储系统中寻找的内容。 Gorilla 基本上为您提供了两个开箱即用的选项,以及提供适合您应用的选项。

    此外,如果您确实有时间构建一个可以与 Gorilla Sessions 一起使用的 RedisStore,请考虑将其开源,因为它将成为 Go 社区的一个很好的补充。

    您必须评估应用的需求和性能要求,以确定要使用的存储系统。为什么 Redis 可能有意义?好吧,如果您正在构建一个执行大量写入/修改的应用程序并且这些数据需要持久保存,那么只要您正确使用它,Redis 就可以帮助您扩展您的应用程序。如果您知道自己在做什么,那么由 Redis 支持的会话将表现得非常好。

    最后一点,如果您涉及 Redis,请考虑使用这个出色的 Go 包:Redigo 作为您的 Redis 客户端库。

    【讨论】:

    • 已经有一个了,我认为这很好 github.com/boj/redistore ,只是为了确保我做对了,使用 gorilla 会话的优点是能够同时使用多种方式?
    • Gorilla Sessions 的优势在于,会话管理的核心功能被很好地抽象到具有可插拔后端存储解决方案的库中。至于 Redis,归根结底就是 Redis 以速度着称。再加上它非常强大的持久性模型意味着它将处理大量并发读/写操作。但它确实增加了您的应用程序的复杂性,因为现在您有一个额外的组件需要维护、调整等。
    • 您可以很好地做到这一点,但是您还必须推出自己的会话和状态管理,包括弄清楚如何处理登录/注销、将会话与用户匹配以及持久会话应该用户返回。
    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    相关资源
    最近更新 更多