Categorygithub.com/issue9/cache
modulepackage
0.17.0
Repository: https://github.com/issue9/cache.git
Documentation: pkg.go.dev

# README

cache

codecov PkgGoDev Go version License

通用的缓存接口

目前支持以下组件:

名称状态
memory内存memory
memcached<github.com/bradfitz/gomemcache>memcache
redis<github.com/redis/go-redis>memcache
// 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

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

# Packages

Package caches 内置的缓存接口实现.
Package cachetest 缓存的测试用例.
Package locales 提供了本地化的内容.

# 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 永不过时.

# Interfaces

Cache 缓存内容的访问接口.
Cleanable 可清除所有缓存内容的接口.
Driver 所有缓存驱动需要实现的接口 对于数据的序列化相关操作可直接调用 [caches.Marshal] 和 [caches.Unmarshal] 进行处理。 新的驱动可以采用 [github.com/issue9/cache/cachetest] 对接口进行测试,看是否符合要求。.

# Type aliases

SetCounterFunc 为计数器增加数值的函数原型 n 为增加的数值,如果为负数,则表示减少。 返回的数值为操作完成之后的数值,如果数值被删除,则返回 [ErrCacheMiss] 错误。 调用此方法也会更新元素的 TTL 值。.