# README
cache
通用的缓存接口
目前支持以下组件:
名称 | 包 | 状态 |
---|---|---|
memory | 内存 | |
memcached | <github.com/bradfitz/gomemcache> | |
redis | <github.com/redis/go-redis> |
// memory
c, _ := memory.New(...)
c.Set("number", 1)
var v int
c.Get("number",&v)
print(v)
// memcached
c = memcache.New("localhost:11211")
c.Set("number", 1)
c.Get("number", &v)
print(v)
n, setN, exists, err := c.Counter("n")
setN(-1) // 为 n 减 1
setN(10) // 为 n 加上 10
安装
go get github.com/issue9/cache
版权
# Functions
ErrCacheMiss 当不存在缓存项时返回的错误.
Get [cache.Get] 的泛型版本.
GetOrInit 获取缓存项
在缓存不存在时,会尝试调用 init 初始化,并调用 [Cache.Set] 存入缓存。
key 和 v 相当于调用 [Cache.Get] 的参数; 如果 [Cache.Get] 返回 [ErrCacheMiss],那么将调用 init 方法初始化值并写入缓存, 最后再调用 [Cache.Get] 返回值。.
Prefix 生成一个带有统一前缀名称的缓存访问对象
c := memory.New(...) p := cache.Prefix(c, "prefix_") p.Get("k1") // 相当于 c.Get("prefix_k1").
# Constants
Forever 永不过时.
# Type aliases
SetCounterFunc 为计数器增加数值的函数原型
n 为增加的数值,如果为负数,则表示减少。 返回的数值为操作完成之后的数值,如果数值被删除,则返回 [ErrCacheMiss] 错误。
调用此方法也会更新元素的 TTL 值。.