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  }