gorm的缓存中间件

8treenet · 2019-09-19 14:43:18 · 6119 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2019-09-19 14:43:18 的文章,其中的信息可能已经有所发展或是发生改变。

gcache是gorm的中间件,注入后gorm即刻拥有缓存。

Overview

  • 即插即用
  • 旁路缓存
  • 数据源使用 Redis
  • 防击穿
  • 防穿透

安装

$ go get -u github.com/8treenet/gcache

快速使用

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

6119 次点击  ∙  1 赞  
加入收藏 微博
1 回复  |  直到 2019-09-20 10:17:44
18393910396
18393910396 · #1 · 6年之前

很赞

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传