Redis 缓存
2025/5/14大约 2 分钟commoncache代码生成
生成 Cache 代码
生成代码
在 sponge 的 UI 界面:
- 点击左边菜单栏【Public】 → 【生成 cache 代码】;
- 按照界面提示填写各项参数,各参数说明可通过悬停提示图标
?
查看。
填写完参数后,点击按钮下载代码
生成 cache 代码,如下图所示:

等价命令
# 完整命令
sponge web cache --module-name=user --cache-name=userToken --prefix-key=user:token: --key-name=id --key-type=uint64 --value-name=token --value-type=string
# 简化命令(使用 --out 指定服务代码目录,生成代码自动合并到指定服务目录)
sponge web cache --cache-name=userToken --prefix-key=user:token: --key-name=id --key-type=uint64 --value-name=token --value-type=string --out=user
代码目录结构
生成的缓存代码目录结构如下:
.
└─ internal
└─ cache # 包含生成的缓存接口实现及测试文件
代码集成说明
集成步骤
- 解压生成的代码包
- 将
internal
目录整体移动到目标服务(web 或 gRPC)代码根目录
注意事项
- 如遇冲突提示,说明已存在相同缓存配置,可安全忽略覆盖
使用 Cache 代码
Web 服务调用方式
定位文件:internal/handler/
- 基于 SQL 创建的服务:
<表名>.go
- 基于 Protobuf 创建的服务:
<proto 文件名>.go
参考示例:
type userHandler struct {
userTokenCache cache.UserTokenCache // 注入缓存接口
}
func NewUserHandler() UserHandler {
return &userHandler{
userTokenCache: cache.NewUserTokenCache(database.GetRedisCli()) // 初始化 cache
}
}
// 缓存操作(Get/Set/Delete 等)可直接使用。
gRPC 服务调用方式
定位文件:internal/service/
- 基于 SQL 创建的服务:
<表名>.go
- 基于 Protobuf 创建的服务:
<proto 文件名>.go
参考示例:
type user struct {
userV1.UnimplementedUserServer
userTokenCache cache.UserTokenCache // 注入缓存接口
}
func NewUserServer() userV1.UserServer {
return &user{
userTokenCache: cache.NewUserTokenCache(database.GetRedisCli()) // 初始化 cache
}
}
// 缓存操作(Get/Set/Delete 等)可直接使用。