- Gession是一个会话框架。
- 可用于HTTP/HTTPS网络连接的会话保持。
- 内置对接Redis接口,连接保存Session到Redis。
- 操作极其方便,易上手,源码易懂有注释。
$ go get -u github.com/wangluozhe/gession
import(
"github.com/wangluozhe/gession/session"
)
Session管理器用于管理Session的各种操作,如:New/Get/Del。
Session管理器变量名:session.Ssmgr
。
Redis方式:
host := "host" // Redis地址
port := 6379 // Redis端口
password := "password" // Redis密码
database := 1 // Redis库
pool := session.NewRedisPool(host, int(port), password, int(database)) // 创建Redis连接池
expire := 1000 // Session过期时间
session.Init(pool, expire) // 初始化Session管理器
Ssmgr := session.Ssmgr // 全局可用,可以直接操作session.Ssmgr也可以赋值后在操作,Ssmgr是Session组管理器,用来创建/读取/删除Session
内存方式:
session.Init() // 初始化Session管理器
Ssmgr := session.Ssmgr // 全局可用,可以直接操作session.Ssmgr也可以赋值后在操作,Ssmgr是Session组管理器,用来创建/读取/删除Session
ss := Ssmgr.New() // 创建Session
ss,err := Ssmgr.Get(sessionId) // 读取Session,如果内存中没有此Session会从Redis中读取,都没有返回nil
if err != nil{
fmt.Println(err)
}
ss,err := Ssmgr.Del(sessionId) // 删除Session,内存和Redis中的此Session都会被删除
if err != nil{
fmt.Println(err)
}
Session操作只有四种操作,简单方便,存储的是map类型,有:Set/Get/Del/Save。
ss.Set(key,value) // 设置Session中的值
// 或
isSuccess := ss.Set(key,value) // 返回一个是否设置成功的bool值
result := ss.Get(key) // 获取Session中的值
ss.Del(key) // 删除Session中的值
// 或
isSuccess := ss.Del(key) // 返回一个是否删除成功的bool值
isSuccess,err := ss.Save() // 保存此Session到Redis中
if err != nil{
fmt.Println(err)
}