Files
gf/.example/database/gdb/mysql/gdb_cache.go

45 lines
1.1 KiB
Go
Raw Normal View History

package main
import (
2019-07-29 21:01:19 +08:00
"github.com/gogf/gf/database/gdb"
"github.com/gogf/gf/os/gctx"
2019-07-29 21:01:19 +08:00
"github.com/gogf/gf/util/gutil"
2020-09-27 00:15:11 +08:00
"time"
)
func main() {
2019-04-03 00:03:46 +08:00
gdb.AddDefaultConfigNode(gdb.ConfigNode{
Host: "127.0.0.1",
Port: "3306",
User: "root",
2020-09-27 00:15:11 +08:00
Pass: "12345678",
2019-04-03 00:03:46 +08:00
Name: "test",
Type: "mysql",
Role: "master",
Charset: "utf8",
})
var (
ctx = gctx.New()
)
2019-04-03 00:03:46 +08:00
db, err := gdb.New()
if err != nil {
panic(err)
}
2020-09-27 00:15:11 +08:00
//db.GetCache().SetAdapter(adapter.NewRedis(g.Redis()))
2019-04-03 00:03:46 +08:00
// 开启调试模式以便于记录所有执行的SQL
db.SetDebug(true)
2019-04-03 00:03:46 +08:00
// 执行2次查询并将查询结果缓存3秒并可执行缓存名称(可选)
2020-09-27 00:15:11 +08:00
for i := 0; i < 3; i++ {
r, _ := db.Ctx(ctx).Model("user").Cache(3000*time.Second).Where("id=?", 1).One()
2020-09-27 00:15:11 +08:00
gutil.Dump(r.Map())
2019-04-03 00:03:46 +08:00
}
2019-04-03 00:03:46 +08:00
// 执行更新操作,并清理指定名称的查询缓存
2020-09-27 00:15:11 +08:00
//db.Table("user").Cache(-1, "vip-user").Data(gdb.Map{"name": "smith"}).Where("id=?", 1).Update()
2019-04-03 00:03:46 +08:00
// 再次执行查询,启用查询缓存特性
2020-09-27 00:15:11 +08:00
//r, _ := db.Table("user").Cache(300000*time.Second, "vip-user").Where("id=?", 1).One()
//gutil.Dump(r.Map())
2019-04-03 00:03:46 +08:00
}