一个内置于项目的分布式缓存服务
前言
项目中缓存是必不可少的,提到缓存大概率会说 redis
不管使用什么第三方缓存,总会需要安装对应的服务。
怎么实现高效缓存又不需要依赖于第三方服务呢?
于是写了一个内置与golang项目的分布式缓存,不需要依赖其他任何服务,使用简单,结构简单。
项目地址
使用
import "github.com/wuyan94zl/go-cache"
func main(){
cache.Default(nil) // 实例化缓存服务
http.HandleFunc("/api/cache", func(w http.ResponseWriter, r *http.Request) {
// cache.Instance为缓存实例,拿到实例就可以随意的使用缓存服务了
// cache.Instance实例目前仅有5个函数
// 设置缓存 键:wuyan 值:value 有效期:60秒
cache.Instance.Set("wuyan","value",60)
// 获取缓存
cache.Instance.Get("wuyan")
// SET if Not eXists 即当 键:wuyan 存在时返回false,不存在则添加,返回true
cache.Instance.SetNX("wuyan","value",60)
var callback cache.CallBack = cache.CallBackFunc(func(key string, params map[string]interface{}) ([]byte, error) {
return json.Marshal("cache data")
})
// 设置回调函数来实现缓存的写入和读取
cache.Instance.CallBackFunc(callback).Cache("cache",map[string]interface{}{}, 600)
res.Write([]byte("response data"))
})
http.ListenAndServe(":8888", nil)
}
本作品采用《CC 协议》,转载必须注明作者和本文链接