ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
有时需要一个后端存储,例如 redis, 它将使会话数据在服务器重启时保持水平扩展。 可以通过单个 `sessions.UseDatabase(database)`的调用来完成 sessions 数据库的注册。 Iris 实现了三个(3)内置的 session 数据库 [redis](https://redis.io/), [badger](https://github.com/dgraph-io/badger) 和 [boltdb](https://github.com/kataras/iris/wiki/github.com/etcd-io/bbolt)。 这些 session 数据库都通过 [iris/sessions/sessiondb](https://github.com/kataras/iris/tree/master/sessions/sessiondb) 子包实现,而且你都需要引入它们。 1. 引入 `gitbub.com/kataras/iris/sessions/sessiondb/redis 或者 boltdb 或者 badger`, 2. 初始化数据库并且 3. 注册它们。 例如,注册 redis session 数据库: ```source-go import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/sessions" // 1\. 引入 session 数据库。 "github.com/kataras/iris/v12/sessions/sessiondb/redis" ) // 2\. 初始化数据库。 // 这些是默认值, // 你可以基于你运行中的 redis 服务器的设置去替换它们: db := redis.New(redis.Config{ Network: "tcp", Addr: "127.0.0.1:6379", Timeout: time.Duration(30) * time.Second, MaxActive: 10, Password: "", Database: "", Prefix: "", Delim: "-", Driver: redis.Redigo(), // 可使用 redis.Radix() 代替。 }) // 可选择配置如下驱动程序: // driver := redis.Redigo() // driver.MaxIdle = ... // driver.IdleTimeout = ... // driver.Wait = ... // redis.Config {Driver: driver} // 当执行 control+C/cmd+C 时关闭连接 iris.RegisterOnInterrupt(func() { db.Close() }) sess := sessions.New(sessions.Config{ Cookie: "sessionscookieid", AllowReclaim: true, }) // 3\. 注册它们。 sess.UseDatabase(db) // [...] ``` **boltdb** ```source-go import "os" import "github.com/kataras/iris/v12/sessions/sessiondb/boltdb" db, err := boltdb.New("./sessions.db", os.FileMode(0750)) ``` **badger** ```source-go import "github.com/kataras/iris/v12/sessions/sessiondb/badger" db, err := badger.New("./data") ```