.. | ||
adapter_file.go | ||
adapter_local.go | ||
adapter_redis.go | ||
cache_contract.go | ||
cache_test.go | ||
cache.go | ||
readme.adoc |
缓存设计
1. 实现
已于 2023-06-21 实现。
可以基于 redis
进行一些基本使用。
2. 设计
从使用倒推设计。
2.1. 场景1
自己管理 key
:
ck := "key_foo"
data := cache.get(ck)
if !data { (1)
data = FETCH_DATA()
cache.set(ck, data, 7200) (2)
}
return data
1 | get 值为 false 表示没有缓存或缓存已过期 |
2 | 7200 为缓存有效期(单位为秒),若指定为 0 表示不过期。 |
2.2. 场景2
程序自动管理 key
:
cache.get(func() {
return 'foo'
}, 7200)
这种方式一般情况下比较方便,要是需要手动使缓存失效,则要麻烦一些。因此,这种方 式暂时不实现。