[go-cache]-内存keyvalue缓存

原创
2021/03/09 10:00
阅读数 0

作者:三十三重天

博客: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源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部