作者:三十三重天
博客:zhouhuibo.club
引言
go-cache类似于memcached的值存储/缓存,适用于在一台计算机上运行的应用程序。它的主要优点是,由于本质上是map[string]interface{}
具有到期时间的线程安全的,因此不需要在网络上序列化或传输其内容。
可以存储任何对象(在给定的持续时间内或永久存储),并且可以由多个goroutine安全地使用高速缓存。
特点
线程安全
适用于单机执行的应用程序
用法
go get github.com/patrickmn/go-cachego get
import (
"github.com/patrickmn/go-cache"
)
使用
package main
import (
"fmt"
"time"
"github.com/patrickmn/go-cache"
)
func main() {
//创建一个cache,key过期时间5M,并且每10M清除缓存中的过期key
c := cache.New(5*time.Minute, 10*time.Minute)
//插入
c.Set("foo", "bar", cache.DefaultExpiration) //按照默认过期时间设置缓存 保存5分钟
//c.Set("foo", "bar", cache.NoExpiration)//永久存储,无过期时间
//更新缓存内容和过期时间
c.Set("baz", 42, cache.NoExpiration)
//删除缓存
// c.Delete("baz")
//查询缓存
foo, found := c.Get("foo")
if found {
fmt.Println(foo)
}
}
资源列表
https://github.com/patrickmn/go-cache
END
欢迎关注公众号 程序员工具集 👍👍 致力于分享优秀的开源项目、学习资源 、常用工具
回复关键词“关注礼包”,送你一份最全的程序员技能图谱。
回复关键词"wx"添加个人微信,勾搭作者,欢迎来聊^-^。

本文分享自微信公众号 - 程序员工具集(rdtool)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。