ASSISTANT:
下面把示例代码里“每一个用到的函数/方法”的函数签名、参数说明、返回值与作用按模块整理,便于你快速查阅。内容基于 github.com/redis/go-redis/v9 与 gin。
一、Redis 客户端初始化与连通性
创建客户端
GO1func NewClient(opt *redis.Options) *redis.Client 2
Ping 测试连通性
GO1func (c *Client) Ping(ctx context.Context) *redis.StatusCmd 2
上下文超时(标准库)
GO1func WithTimeout(parent context.Context, timeout time.Duration) (context.Context, context.CancelFunc) 2
二、Gin 路由、处理函数与上下文
创建默认引擎
GO1func Default() *gin.Engine 2
注册 POST 路由
GO1func (engine *Engine) POST(relativePath string, handlers ...gin.HandlerFunc) 2
处理函数类型
GO1type HandlerFunc func(*gin.Context) 2
从请求获取上下文
GO1func (c *gin.Context) Request.Context() context.Context 2
返回 JSON
GO1func (c *gin.Context) JSON(code int, obj any) 2
gin.H(便捷 Map)
GO1type H map[string]any 2
启动服务
GO1func (engine *Engine) Run(addr ...string) error 2
三、Redis 事务(MULTI/EXEC)与乐观锁(WATCH)
使用事务批处理(在客户端维度)
GO1func (c *Client) TxPipelined(ctx context.Context, fn func(redis.Pipeliner) error) ([]redis.Cmder, error) 2
获取事务管道(如果你需要更细控制)
GO1func (c *Client) TxPipeline() redis.Pipeliner 2func (tx *Tx) TxPipeline() redis.Pipeliner 3
乐观锁(WATCH)
GO1func (c *Client) Watch(ctx context.Context, fn func(*redis.Tx) error, keys ...string) error 2
在 WATCH 回调里读取与提交
读取键值:
GO1func (tx *Tx) Get(ctx context.Context, key string) *redis.StringCmd 2
在事务中排队命令并提交:
GO1func (tx *Tx) TxPipelined(ctx context.Context, fn func(redis.Pipeliner) error) ([]redis.Cmder, error) 2
事务相关错误
四、Pipeliner 常用命令(在事务中或普通管道中都可用)
HSET(设置哈希字段)
GO1func (p Pipeliner) HSet(ctx context.Context, key string, values ...interface{}) *redis.IntCmd 2
INCR(自增)
GO1func (p Pipeliner) Incr(ctx context.Context, key string) *redis.IntCmd 2
DECR(自减)
GO1func (p Pipeliner) Decr(ctx context.Context, key string) *redis.IntCmd 2
命令结果公共接口
GO1type Cmder interface { 2 Name() string 3 FullName() string 4 Args() []interface{} 5 Err() error 6 String() string 7} 8
五、HTTP 常量与用法(标准库)
六、其他标准库函数(示例中用到)
字符串格式化
GO1func Sprintf(format string, a ...any) string 2
环境变量
GO1func Getenv(key string) string 2
时间
GO1func Now() time.Time 2
GO1func (t Time) Format(layout string) string 2
GO1func Sleep(d time.Duration) 2
七、用法串起来的流程提示(简化版)
如果你还想看某个具体方法的更多字段、可选参数或返回类型细节(例如 IntCmd、StringCmd 的所有方法),告诉我方法名,我再进一步展开。