接口文档
https://godoc.org/github.com/gogf/gf/os/gsession
任何时候都可以通过ghttp.Request
获取Session
对象,因为Cookie
和Session
都是和请求会话相关,因此都属于Request
的成员对象,并对外公开。GF
框架的Session
默认过期时间是24小时
。
此外,需要说明的是,Session
的操作是支持并发安全
的,这也是框架在对Session
的设计上不采用直接以map
的形式操作数据的原因。在HTTP
请求流程中,我们可以通过ghttp.Request
对象来获取Session
对象,并执行相应的数据操作。
gsession
模块
Session
的管理功能由独立的模块实现,并已完美整合到了ghttp.Server
中。由于该模块是解耦独立的,因此可以应用到更多不同的场景中,例如:TCP
通信、gRPC
接口服务等等。
gsession.Session
:单个Session
会话管理对象,用于Session
参数的增删查改等数据管理操作。gsession.Storage
:这是一个接口定义,用于Session
对象的持久化存储、数据写入/读取、存活更新等操作,开发者可基于该接口实现自定义的持久化存储特性。该接口定义如下: https://github.com/gogf/gf/blob/master/os/gsession/gsession_storage.go
存储实现方式
gsession
实现并为开发者提供了常见的三种Session
存储实现方式:
- 基于纯内存存储:性能最高效,但是无法持久化保存,重启即丢失;
- 基于
Redis
存储:远程节点存储Session
数据,支持应用多节点部署;