golib/gcache/readme.adoc

977 B

缓存设计

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)

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