go-cache包的使用简析
文章发布较早,内容可能过时,阅读注意甄别。
# 前言
平时用 go 写一些小工具的时候,如果数据的敏感性没有那么强,那么一些热数据就可以考虑放在 cache 当中,cache 也没必要用外置服务,那就直接使用本机内存进行存储即可。
go-cache 就是一个用于本地缓存的 Go 语言库,它支持过期时间和自动清理。它使用了一个内部的 goroutine 来检查缓存项是否过期,并在需要时自动清理过期的缓存项。使我们能够很方便地将一些数据放在缓存当中。
- name: go-cache
desc: 一个提供 cache 能力的 go 库
avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4
link: https://github.com/patrickmn/go-cache
bgColor: "#ffa8a8"
1
2
3
4
5
2
3
4
5
# 安装
可以使用 go get 命令安装 go-cache 库:
go get github.com/patrickmn/go-cache
1
# 使用
# New
使用 go-cache 库非常简单。通过如下方法可以创建一个缓存对象:
import "github.com/patrickmn/go-cache"
c := cache.New(5*time.Minute, 10*time.Minute)
1
2
3
2
3
cache.New()
会创建一个缓存对象,它需要两个参数:
- 第一个参数:表示缓存项的过期时间,如上示例表示 5 分钟后过期。
- 第二个参数:表示缓存项的清除时间,如上示例表示 10 分钟后自动清除。
# Set
使用 Set
方法可以将一个键值对添加到缓存中:
c.Set("key", "value", cache.DefaultExpiration)
1
c.Set()
需要传递三个参数:
- 第一个参数:指定缓存项的 key。
- 第二个参数:指定缓存项的 value。
- 第三个参数:指定该项目的过期时间。
📢 注意:
一,此处指定的时间优先级大于 New 时的时间,如果这里指定为 2 分钟,则该缓存项将在 2 分钟后过期;二,如果配置为cache.NoExpiration
则表示缓存项永不过期。
# Get
使用 Get
方法从缓存中获取一个键值对:
value, found := c.Get("key")
if found {
fmt.Println(value)
}
1
2
3
4
2
3
4
这将获取名为 key
的键的值。如果找到了匹配的键,则 found 为 true。
# Delete
使用 Delete
方法可以将缓存项从缓存中移除:
c.Delete("key")
1
表示直接将名为 key
的缓存项移除。
# Items
使用 Items
方法获取缓存中的所有键值对:
items := c.Items()
fmt.Println(len(items))
1
2
2
这将返回一个切片,包含缓存中的所有键值对。
# Purge
使用 Purge
方法清空缓存中的所有键值对:
c.Purge()
1
这将清空缓存中的所有键值对。
上次更新: 2024/11/19, 23:11:42