温馨提示×

linux下golang咋配置缓存

小樊
43
2026-10-15 21:56:17
栏目: 编程语言

在 Linux 下给 Golang 配置“缓存”,通常分几种场景。下面按最常见需求给你说明,基本都能覆盖 90% 情况。


一、Go 模块缓存(最常见)

Go 会自动把依赖下载到 模块缓存目录。

1. 查看当前缓存位置

go env GOMODCACHE
go env GOPATH

默认一般是:

$HOME/go/pkg/mod

2. 修改模块缓存目录(可选)

比如你想放到 /data/go/mod:

go env -w GOMODCACHE=/data/go/mod

3. 修改 GOPATH(影响整体缓存)

go env -w GOPATH=/data/go

⚠️ 改完记得:

source ~/.bashrc
# 或
source ~/.zshrc

4. 清理模块缓存

go clean -modcache

二、Go 构建缓存(编译缓存)

Go 编译结果也会缓存,加速二次构建。

查看构建缓存

go env GOCACHE

默认:

$HOME/.cache/go-build

修改构建缓存目录

go env -w GOCACHE=/data/go/cache

清理构建缓存

go clean -cache

三、Go 下载缓存(proxy 下载)

如果你在用 Go Proxy(推荐):

go env -w GOPROXY=https://proxy.golang.org,direct

查看下载缓存:

go env GOPROXY

(下载缓存也在 GOMODCACHE 里)


四、程序运行时缓存(Redis / 文件 / 内存)

如果你是问 “Golang 程序怎么用缓存”:

1. 内存缓存(单机)

import "github.com/patrickmn/go-cache"

c := cache.New(5*time.Minute, 10*time.Minute)
c.Set("key", "value", cache.DefaultExpiration)

2. Redis(分布式)

import "github.com/redis/go-redis/v9"

3. 文件缓存

os.WriteFile("/tmp/cache", data, 0644)

五、Docker + Linux 下的 Go 缓存(进阶)

如果你用 Docker 构建:

ENV GOMODCACHE=/go/pkg/mod
ENV GOCACHE=/go/cache

并挂载缓存卷:

docker run -v go-mod:/go/pkg/mod -v go-cache:/go/cache

总结(最常改的 3 个)

go env -w GOPATH=/data/go
go env -w GOMODCACHE=/data/go/pkg/mod
go env -w GOCACHE=/data/go/cache

如果你能说清楚是 “依赖缓存 / 编译缓存 / 程序运行时缓存”,我可以给你更精确的配置示例。

0 踩