脚本宝典收集整理的这篇文章主要介绍了golang-cache是全局吗,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
go-cache 是一个基于内存的、高速的,存储k-v格式的缓存工具。它适用于运行在单台机器上的应用程序,可以存储任何数据类型的值,并可以被多个goroutine安全地使用。 (推荐学习:go)
虽然go-cache 不打算用作持久数据存储,但是可以将整个缓存数据保存到文件(或任何io.Reader/WrITer)中,并且能快速从中指定数据源加载,快速恢复状态。
Demo
package main import ( "LOG" "time" "github.COM/patrickmn/go-cache" ) func main(){ c := cache.New(30*time.Second, 10*time.Second) c.Set("Title", "SPRing Festival", cache.DefaultExpiration) value, found := c.Get("Title") if found { log.Println("found:", value) } else { log.Println("not found") } time.Sleep(60*time.Second) log.Println("sleep 60s...") value, found = c.Get("Title") if found { log.Println("found:", value) } else { log.Println("not found") } }
output
2019/02/05 17:49:32 found: Spring Festival 2019/02/05 17:50:32 sleep 60s… 2019/02/05 17:50:32 not found
首先,创建一个新的cache,其中的key过期时间是30s,并且每10s清除缓存中的过期key。
定期清除缓存中的过期key,是通过一个常驻goroutine实现的。
接着,设置一个key/value,及其过期时间。过期时间使用默认过期时间,即30s。
获取这个key,可以看到,此时这个key在cache中是存在的。
睡眠60s,使刚才设置的key过期。
再次获取这个key,此时key已经过期,被清除了,不在cache
以上就是golang-cache是全局吗的详细内容,更多请关注脚本宝典其它相关文章!
以上是脚本宝典为你收集整理的golang-cache是全局吗全部内容,希望文章能够帮你解决golang-cache是全局吗所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。