golib/gcache/readme.adoc
2023-06-15 21:22:51 +08:00

920 B

缓存设计

注: 暂时直接使用 go-resdis/cache

从使用倒推设计。

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

程序自动管理 key:

cache.get(func() {
    return 'foo'
}, 7200)

这种方式一般情况下比较方便,要是需要手动使缓存失效,则要麻烦一些。因此,这种方 式暂时不实现。