// Package redis ... // // Description : redis ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2024-06-19 16:15 package redis import ( "context" "git.zhangdeman.cn/zhangdeman/consts" "git.zhangdeman.cn/zhangdeman/redis/define" "strings" "time" ) var ( Wrapper = &wrapper{} ) // wrapper 常用命令的包装 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:16 2024/6/19 type wrapper struct { } // Exist 缓存Key是否存在 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:31 2024/6/21 func (w *wrapper) Exist(ctx context.Context, instanceFlag string, key string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandExists, key) } // TTL ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:14 2024/10/9 func (w *wrapper) TTL(ctx context.Context, instanceFlag string, key string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandTTL, key) } // Get Get命令 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:17 2024/6/19 func (w *wrapper) Get(ctx context.Context, instanceFlag string, key string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandGet, key) } // Del 删除命令 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:19 2024/6/19 func (w *wrapper) Del(ctx context.Context, instanceFlag string, keyList ...string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandDel, strings.Join(keyList, " ")) } // SetEx 设置数据并且带有效期, 有效期单位 : s // // Author : go_developer@163.com<白茶清欢> // // Date : 16:22 2024/6/19 func (w *wrapper) SetEx(ctx context.Context, instanceFlag string, key string, value string, ttl int64, withLock bool) *define.RedisResult { now := time.Now().Unix() if ttl > now { // 传入过期时间大于当前时间, 说明是指定具体时间过期, 做一下处理 ttl = ttl - now } if withLock { return Client.Exec(ctx, instanceFlag, consts.RedisCommandSet, key, value, "EX", ttl, "NX") } return Client.Exec(ctx, instanceFlag, consts.RedisCommandSet, key, value, "EX", ttl) } // LPop ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:29 2024/6/19 func (w *wrapper) LPop(ctx context.Context, instanceFlag string, key string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandLpop, key) } // RPop ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:30 2024/6/19 func (w *wrapper) RPop(ctx context.Context, instanceFlag string, key string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandRpop, key) } // LPush ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:31 2024/6/19 func (w *wrapper) LPush(ctx context.Context, instanceFlag string, key string, value string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandLpush, key, value) } // RPush ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:31 2024/6/19 func (w *wrapper) RPush(ctx context.Context, instanceFlag string, key string, value string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandRpush, key, value) } // HGet ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:33 2024/6/19 func (w *wrapper) HGet(ctx context.Context, instanceFlag string, key string, field string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandHget, key, field) } // HSet ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:33 2024/6/19 func (w *wrapper) HSet(ctx context.Context, instanceFlag string, key string, field string, value string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandHset, key, field, value) } // HDel ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:37 2024/6/19 func (w *wrapper) HDel(ctx context.Context, instanceFlag string, key string, fieldList ...string) *define.RedisResult { return Client.Exec(ctx, instanceFlag, consts.RedisCommandHdel, key, strings.Join(fieldList, " ")) }