Gession会话框架
- Gession是一个会话框架。
- 可用于HTTP/HTTPS网络连接的会话保持。
- 内置对接Redis接口,连接保存Session到Redis。
- 操作极其方便,易上手,源码易懂有注释。
github地址
安装
$ go get -u github.com/wangluozhe/gession
依赖
导入
import(
"github.com/wangluozhe/gession/session"
)
初始化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
创建Session
ss := Ssmgr.New() // 创建Session
读取Session
ss,err := Ssmgr.Get(sessionId) // 读取Session,如果内存中没有此Session会从Redis中读取,都没有返回nil
if err != nil{
fmt.Println(err)
}
删除Session
ss,err := Ssmgr.Del(sessionId) // 删除Session,内存和Redis中的此Session都会被删除
if err != nil{
fmt.Println(err)
}
Session操作
Session操作只有四种操作,简单方便,存储的是map类型,有:Set/Get/Del/Save。
设置Session值
ss.Set(key,value) // 设置Session中的值
// 或
isSuccess := ss.Set(key,value) // 返回一个是否设置成功的bool值
获取Session值
result := ss.Get(key) // 获取Session中的值
删除Session值
ss.Del(key) // 删除Session中的值
// 或
isSuccess := ss.Del(key) // 返回一个是否删除成功的bool值
保存Session到Redis中
isSuccess,err := ss.Save() // 保存此Session到Redis中
if err != nil{
fmt.Println(err)
}