You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
小旭
f7c596cff5
|
5 years ago | |
---|---|---|
.. | ||
testdata | 5 years ago | |
README.md | 5 years ago | |
header_template.go | 5 years ago | |
main.go | 5 years ago | |
multi_template.go | 5 years ago | |
none_template.go | 5 years ago | |
single_template.go | 5 years ago |
README.md
genmc
mc缓存代码生成
项目简介
自动生成memcached缓存代码 和缓存回源工具kratos-gen-bts配合使用 体验更佳 支持以下功能:
- 常用mc命令(get/set/add/replace/delete)
- 多种数据存储格式(json/pb/raw/gob/gzip)
- 常用值类型自动转换(int/bool/float...)
- 自定义缓存名称和过期时间
- 记录pkg/error错误栈
- 记录日志trace id
- prometheus错误监控
- 自定义参数个数
- 自定义注释
使用方式:
- dao.go文件中新增 _mc interface
- 在dao 文件夹中执行 go generate命令 将会生成相应的缓存代码
- 示例见testdata/dao.go
注意:
类型会根据前缀进行猜测 set / add 对应mc方法Set replace 对应mc方法 Replace del 对应mc方法 Delete get / cache对应mc方法Get mc Add方法需要用注解 -type=only_add单独指定
注解参数:
名称 | 默认值 | 可用范围 | 说明 | 可选值 | 示例 |
---|---|---|---|---|---|
encode | 根据值类型raw或json | set/add/replace | 数据存储的格式 | json/pb/raw/gob/gzip | json 或 json|gzip 或gob等 |
type | 前缀推断 | 全部 | mc方法 set/get/delete... | get/set/del/replace/only_add | get 或 replace 等 |
key | 根据方法名称生成 | 全部 | 缓存key名称 | - | demoKey |
expire | 根据方法名称生成 | 全部 | 缓存过期时间 | - | d.demoExpire |
batch | get(限多key模板) | 批量获取数据 每组大小 | - | 100 | |
max_group | get(限多key模板) | 批量获取数据 最大组数量 | - | 10 | |
batch_err | break | get(限多key模板) | 批量获取数据回源错误的时候 降级继续请求(continue)还是直接返回(break) | break 或 continue | continue |
struct_name | dao | 全部 | 用户自定义Dao结构体名称 | MemcacheDao | |
check_null_code | add/set | (和null_expire配套使用)判断是否是空缓存的代码 用于为空缓存独立设定过期时间 | $.ID==-1 或者 $=="-1"等 | ||
null_expire | 300(5分钟) | add/set | (和check_null_code配套使用)空缓存的过期时间 | d.nullExpire |