[go-cache]-怎么会有这么方便的缓存库!

本文最后更新于:2021年4月1日 上午

关于我

我的博客|文章首发

通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施。

引言

go-cache类似于memcached的值存储/缓存,适用于在一台计算机上运行的应用程序。它的主要优点是,由于本质上是map[string]interface{}具有到期时间的线程安全的,因此不需要在网络上序列化或传输其内容。

可以存储任何对象(在给定的持续时间内或永久存储),并且可以由多个goroutine安全地使用高速缓存。

特点

线程安全

适用于单机执行的应用程序

用法

1
go get github.com/patrickmn/go-cachego get 
1
2
3
import (
"github.com/patrickmn/go-cache"
)

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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

https://www.cnblogs.com/Paul-watermelon/p/11153553.html

END

欢迎关注公众号 程序员工具集 👍👍 致力于分享优秀的开源项目、学习资源 、常用工具

回复关键词“关注礼包”,送你一份最全的程序员技能图谱。

回复关键词”wx”添加个人微信,勾搭作者,欢迎来聊^-^。

wechat.png


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!