go-cache包的使用简析
source link: https://wiki.eryajf.net/pages/8f3ba7/#%E5%89%8D%E8%A8%80
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
go-cache包的使用简析
# 前言
平时用 go 写一些小工具的时候,如果数据的敏感性没有那么强,那么一些热数据就可以考虑放在 cache 当中,cache 也没必要用外置服务,那就直接使用本机内存进行存储即可。
go-cache 就是一个用于本地缓存的 Go 语言库,它支持过期时间和自动清理。它使用了一个内部的 goroutine 来检查缓存项是否过期,并在需要时自动清理过期的缓存项。使我们能够很方便地将一些数据放在缓存当中。
# 安装
可以使用 go get 命令安装 go-cache 库:
go get github.com/patrickmn/go-cache
# 使用
# New
使用 go-cache 库非常简单。通过如下方法可以创建一个缓存对象:
import "github.com/patrickmn/go-cache"
c := cache.New(5*time.Minute, 10*time.Minute)
cache.New()
会创建一个缓存对象,它需要两个参数:
- 第一个参数:表示缓存项的过期时间,如上示例表示 5 分钟后过期。
- 第二个参数:表示缓存项的清除时间,如上示例表示 10 分钟后自动清除。
# Set
使用 Set
方法可以将一个键值对添加到缓存中:
c.Set("key", "value", cache.DefaultExpiration)
c.Set()
需要传递三个参数:
- 第一个参数:指定缓存项的 key。
- 第二个参数:指定缓存项的 value。
- 第三个参数:指定该项目的过期时间。
📢 注意:
一,此处指定的时间优先级大于 New 时的时间,如果这里指定为 2 分钟,则该缓存项将在 2 分钟后过期;二,如果配置为cache.DefaultExpiration
则表示缓存项永不过期。
# Get
使用 Get
方法从缓存中获取一个键值对:
value, found := c.Get("key")
if found {
fmt.Println(value)
}
这将获取名为 key
的键的值。如果找到了匹配的键,则 found 为 true。
# Delete
使用 Delete
方法可以将缓存项从缓存中移除:
c.Delete("key")
表示直接将名为 key
的缓存项移除。
# Items
使用 Items
方法获取缓存中的所有键值对:
items := c.Items()
fmt.Println(len(items))
这将返回一个切片,包含缓存中的所有键值对。
# Purge
使用 Purge
方法清空缓存中的所有键值对:
c.Purge()
这将清空缓存中的所有键值对。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK