github.com/gogf/gf@v1.16.9/.example/database/gdb/mysql/gdb_cache.go (about) 1 package main 2 3 import ( 4 "github.com/gogf/gf/database/gdb" 5 "github.com/gogf/gf/util/gutil" 6 "time" 7 ) 8 9 func main() { 10 gdb.AddDefaultConfigNode(gdb.ConfigNode{ 11 Host: "127.0.0.1", 12 Port: "3306", 13 User: "root", 14 Pass: "12345678", 15 Name: "test", 16 Type: "mysql", 17 Role: "master", 18 Charset: "utf8", 19 }) 20 db, err := gdb.New() 21 if err != nil { 22 panic(err) 23 } 24 //db.GetCache().SetAdapter(adapter.NewRedis(g.Redis())) 25 // 开启调试模式,以便于记录所有执行的SQL 26 db.SetDebug(true) 27 28 // 执行2次查询并将查询结果缓存3秒,并可执行缓存名称(可选) 29 for i := 0; i < 3; i++ { 30 r, _ := db.Table("user").Cache(3000*time.Second).Where("id=?", 1).One() 31 gutil.Dump(r.Map()) 32 } 33 34 // 执行更新操作,并清理指定名称的查询缓存 35 //db.Table("user").Cache(-1, "vip-user").Data(gdb.Map{"name": "smith"}).Where("id=?", 1).Update() 36 37 // 再次执行查询,启用查询缓存特性 38 //r, _ := db.Table("user").Cache(300000*time.Second, "vip-user").Where("id=?", 1).One() 39 //gutil.Dump(r.Map()) 40 }