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.
45 lines
2.8 KiB
45 lines
2.8 KiB
6 years ago
|
|
||
|
#### 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错误监控
|
||
|
- 自定义参数个数
|
||
|
- 自定义注释
|
||
|
|
||
|
##### 使用方式:
|
||
|
1. dao.go文件中新增 _mc interface
|
||
|
2. 在dao 文件夹中执行 go generate命令 将会生成相应的缓存代码
|
||
|
3. 示例见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名称 | - | articleKey |
|
||
|
| expire | 根据方法名称生成 | 全部 | 缓存过期时间 | - | d.articleExpire |
|
||
|
| batch | | get(限多key模板) | 批量获取数据 每组大小 | - | 100 |
|
||
|
| max_group | | get(限多key模板) | 批量获取数据 最大组数量 | - | 10 |
|
||
|
| batch_err | break | get(限多key模板) | 批量获取数据回源错误的时候 降级继续请求(continue)还是直接返回(break) | break 或 continue | continue |
|
||
|
| struct_name | Dao | 全部 | 用户自定义Dao结构体名称 | | MemcacheDao |
|
||
|
|