登录  /  注册
首页 > 后端开发 > Golang > 正文

golang-cache是全局吗

(*-*)浩
发布: 2019-12-13 11:37:51
原创
3584人浏览过

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是全局吗的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号