go-cache在golang中的应用

go-cache 是一个基于内存的、高速的,存储k-v格式的缓存工具。它适用于运行在单台机器上的应用程序,可以存储任何数据类型的值,并可以被多个goroutine安全地使用。

十多年的右江网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整右江建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“右江网站设计”,“右江网站推广”以来,每个客户项目都认真落实执行。

虽然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是全局吗的详细内容,更多请关注创新互联其它相关文章!


当前题目:go-cache在golang中的应用
URL链接:http://hbruida.cn/article/pjdosd.html