SuperAPI AI 工具集

go-cache

通用与其它

查看项目

更新于 10-15 20:29

技能介绍

用途:为 Go 模块生成 Redis 支持的缓存层代码,当用户提到缓存或 Redis 时触发。每个缓存生成两个文件:端口接口(internal/modules/<module>/ports/<cache_name>_cache.go)与 Redis 实现(internal/modules/<module>/cache/<cache_name>_cache.go)。

主要能力:支持两种变体——布尔标记缓存(存在性检查、限流状态,Get 返回 bool)与 JSON 数据缓存(结构化对象,Get 返回 *dto.XxxData)。提供固定 TTL 与随机化 TTL(防止缓存击穿)。包含键构建辅助方法(字符串拼接、fmt.Sprintf、复合键)、编译期接口断言、构造函数、Fx 依赖注入接线,以及 make lint 与 make nilaway 检查步骤。

使用方式:先选择变体,再创建端口接口与实现文件,添加 Fx 接线,最后运行检查命令。依赖 redis.UniversalClient(来自 github.com/cristiano-pacheco/bricks/pkg/redis)与 redislib "github.com/redis/go-redis/v9" 用于 nil 检测。

限制与规则:实现方法不写注释,仅端口接口有文档注释;TTL 不暴露为方法参数;缺失键时布尔缓存返回 false, nil,JSON 缓存返回 nil, nil(或按需返回领域错误);数据 DTO 定义在 dto 包而非 ports;错误消息采用 "action noun: %w" 格式。具体安装命令与版本信息暂未提供。