在 CentOS 中配置 Golang 缓存,通常包括以下几类场景,你可以根据需求选择:
Go 默认会把下载的模块缓存到 $GOPATH/pkg/mod,你可以手动指定位置或清理。
go env
重点关注:
GOPATH="/root/go"
GOMODCACHE="/root/go/pkg/mod"
go env -w GOMODCACHE=/data/go/pkg/mod
go env -w GOPATH=/data/go
go env -w GOPROXY=https://proxy.golang.org,direct
# 国内推荐
go env -w GOPROXY=https://goproxy.cn,direct
go clean -modcache # 清理模块缓存
go clean -cache # 清理构建缓存
Go 1.10+ 有独立的构建缓存:
go env GOCACHE
默认路径:
/root/.cache/go-build
修改构建缓存目录:
go env -w GOCACHE=/data/go/cache
清理构建缓存:
go clean -cache
go get github.com/allegro/bigcache
示例:
cache, _ := bigcache.NewBigCache(bigcache.DefaultConfig(10 * time.Minute))
cache.Set("key", []byte("value"))
go get github.com/redis/go-redis/v9
rdb := redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
})
rdb.Set(ctx, "key", "value", time.Hour)
mkdir -p /mnt/go-cache
mount -t tmpfs tmpfs /mnt/go-cache
go env -w GOCACHE=/mnt/go-cache
ulimit -n 65535
| 场景 | 建议 |
|---|---|
| CI/CD | 挂载 GOMODCACHE 做缓存 |
| 国内服务器 | 配置 goproxy.cn |
| 高性能服务 | Redis + 本地缓存 |
| 构建慢 | tmpfs + 缓存复用 |
如果你是指 “Go 程序本身的缓存目录” 或 “某个框架(如 Gin / Beego)的缓存”,可以告诉我具体场景,我可以给更精确的配置。