分享
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
###### gcache是gorm的中间件,注入后gorm即刻拥有缓存。
## Overview
- 即插即用
- 旁路缓存
- 数据源使用 Redis
- 防击穿
- 防穿透
#### 安装
```
$ go get -u github.com/8treenet/gcache
```
#### 快速使用
```go
import (
"github.com/8treenet/gcache"
"github.com/jinzhu/gorm"
"github.com/8treenet/gcache/option""
)
func init() {
gormdb, _ = gorm.Open("mysql", "")
opt := option.DefaultOption{}
opt.Expires = 300 //缓存时间,默认60秒。范围 30-900
opt.Level = option.LevelSearch //缓存级别,默认LevelSearch。LevelDisable:关闭缓存,LevelModel:模型缓存, LevelSearch:查询缓存
opt.AsyncWrite = false //异步缓存更新, 默认false。 insert update delete 成功后是否异步更新缓存
opt.PenetrationSafe = false //开启防穿透, 默认false。
//缓存中间件 注入到Gorm。
gcache.InjectGorm(gormdb, &opt, &option.RedisOption{Addr:"localhost:6379"})
}
```
#### 约定
- 不支持 Gruop
- 不支持 Having
- 查询条件和查询参数分离
#### Example
```shell script
#查看 example_test.go 了解更多。
more src/github.com/8treenet/gcache/example/example_test.go
有疑问加站长微信联系(非本文作者))
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信6569 次点击 ∙ 1 赞
下一篇:一文读懂公有链、私有链、联盟链
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传