快速开始
在开发数据监控工具时,通常需要缓存上一次的数据采集状态。这样的场景一多,维护这些数据库就会带来较高的心智成本,因此我开发了DocKV。
你只需要在Google Doc新建一个电子表格并配置好读写权限,即可把该表格变成一个存储介质。DocKV会在该表格上维护一个键值数据库。
准备工作
- 新建Google Service Account, 文档在此 👉 Document of Service Account . 创建完服务账号之后,记录
Email
字段,后面会用到(图1)。 - 点击图1中表格右侧的 Actions -> Manage Keys -> ADD KEY -> Create New Key, 此时会弹出一个对话框,这里Key type选择默认的 JSON,点击 CREATE,这时会自动格下载一个
JSON文件
,要保存好,后面会用到。 - 进入 Google Doc , 新建一个电子表格。在表格的URL中找到
SHEET_ID
记录下来。 - 点击电子表格右上角的 共享,把这个表格的读写权限共享给第一步得到的
Email
对应的 Service Account。
安装
1 | go get -u github.com/0xjeffro/DocKV |
例子
定义数据模式
1 | import ( |
连接
1 | func connect() *DocKV.DocKV { |
其中,CLIENT_SECRET
对应的是“准备工作”章节中拿到的JSON文件
中的字符串;SHEET_ID
同理。
代码中的60
是缓存时间,单位为秒。由于Google API有限速机制,因此DocKV实现了一个简单的缓存,尽量避免触发限制。
注意事项
Google Doc API对于接口调用的频率有明确的限制,具体规则可见:Usage limits 。因此,DocKV只适用于很小的项目使用,在业务逻辑中要注意缓存时间的把握以及数据规模的适当维护。尤其不适用于以下场景:
- 高频地击穿查询:频繁查询缓存中可能不存在的键,导致大量请求直接落到API的调用上,触发请求频率限制。
- 高频写入:频繁地插入新的键,触发请求频率限制。