通常session实现机制都是在客户端放一个session ID (cookie),然后服务端存储一份session数据与之对应,beego的session模块,支持自定义session数据存储引擎。
目前session模块支持的常用的存储引擎如下:
- memory
- cookie
- file
- mysql
- redis
下面是个简单计数器的例子,通过session的count字段累计访问量
func (this *MainController) Get() {
// 读取session数据
v := this.GetSession("count")
if v == nil {
// 写入session数据
this.SetSession("count", int(1))
this.Data["num"] = 0
} else {
// 写入session数据
this.SetSession("count", v.(int)+1)
this.Data["num"] = v.(int)
}
this.TplName = "user/index.html"
}
详情请参考:beego session处理教程