在 Linux 下给 Golang 配置“缓存”,通常分几种场景。下面按最常见需求给你说明,基本都能覆盖 90% 情况。
Go 会自动把依赖下载到 模块缓存目录。
go env GOMODCACHE
go env GOPATH
默认一般是:
$HOME/go/pkg/mod
比如你想放到 /data/go/mod:
go env -w GOMODCACHE=/data/go/mod
go env -w GOPATH=/data/go
⚠️ 改完记得:
source ~/.bashrc
# 或
source ~/.zshrc
go clean -modcache
Go 编译结果也会缓存,加速二次构建。
go env GOCACHE
默认:
$HOME/.cache/go-build
go env -w GOCACHE=/data/go/cache
go clean -cache
如果你在用 Go Proxy(推荐):
go env -w GOPROXY=https://proxy.golang.org,direct
查看下载缓存:
go env GOPROXY
(下载缓存也在 GOMODCACHE 里)
如果你是问 “Golang 程序怎么用缓存”:
import "github.com/patrickmn/go-cache"
c := cache.New(5*time.Minute, 10*time.Minute)
c.Set("key", "value", cache.DefaultExpiration)
import "github.com/redis/go-redis/v9"
os.WriteFile("/tmp/cache", data, 0644)
如果你用 Docker 构建:
ENV GOMODCACHE=/go/pkg/mod
ENV GOCACHE=/go/cache
并挂载缓存卷:
docker run -v go-mod:/go/pkg/mod -v go-cache:/go/cache
go env -w GOPATH=/data/go
go env -w GOMODCACHE=/data/go/pkg/mod
go env -w GOCACHE=/data/go/cache
如果你能说清楚是 “依赖缓存 / 编译缓存 / 程序运行时缓存”,我可以给你更精确的配置示例。