golib/gcache
2023-06-21 10:52:25 +08:00
..
adapter_file.go init repo 2023-06-15 21:22:51 +08:00
adapter_local.go feat: 实现 cache,使用 redis 能基本使用 2023-06-21 10:52:25 +08:00
adapter_redis.go feat: 实现 cache,使用 redis 能基本使用 2023-06-21 10:52:25 +08:00
cache_contract.go feat: 实现 cache,使用 redis 能基本使用 2023-06-21 10:52:25 +08:00
cache_test.go feat: 实现 cache,使用 redis 能基本使用 2023-06-21 10:52:25 +08:00
cache.go feat: 实现 cache,使用 redis 能基本使用 2023-06-21 10:52:25 +08:00
readme.adoc feat: 实现 cache,使用 redis 能基本使用 2023-06-21 10:52:25 +08:00

缓存设计

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)

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