From 75a6f160b98e65f7617f3fd4833d43f2613ca097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Sat, 13 Aug 2022 14:40:14 +0800 Subject: [PATCH] - update redis --- const.go | 2 +- redis_cache.go | 41 ++++++++++++++++----------- redis_curd.go | 50 ++++++++++++++++----------------- redis_curd_channel.go | 20 ++++++------- redis_get.go | 4 +-- redis_list_operation.go | 4 +-- redis_simple_cache.go | 2 +- redis_simple_interface_cache.go | 2 +- redis_simple_json_cache.go | 2 +- redis_simple_operation.go | 4 +-- redis_simple_sring_cache.go | 2 +- redis_string_operation.go | 4 +-- 12 files changed, 72 insertions(+), 65 deletions(-) diff --git a/const.go b/const.go index 0fc47f2..b687808 100644 --- a/const.go +++ b/const.go @@ -1,3 +1,3 @@ package dorm -const Version = "1.0.18" +const Version = "1.0.19" diff --git a/redis_cache.go b/redis_cache.go index 2213cd0..3be9993 100644 --- a/redis_cache.go +++ b/redis_cache.go @@ -6,32 +6,39 @@ import ( "time" ) +// GttStringFunc String缓存结构 +type GttStringFunc func() string + +// GttInterfaceFunc Interface缓存结构 +type GttInterfaceFunc func() interface{} + // RedisCacheConfig 配置 type RedisCacheConfig struct { - DefaultExpiration time.Duration // 过期时间 + Expiration time.Duration // 过期时间 } // RedisClientCache https://github.com/go-redis/redis type RedisClientCache struct { - config *RedisCacheConfig - operation *RedisClient // 操作 - GetterString func() string // 不存在的操作 - GetterInterface func() interface{} // 不存在的操作 + defaultExpiration time.Duration // 过期时间 + operation *RedisClient // 操作 + GetterString GttStringFunc // 不存在的操作 + GetterInterface GttInterfaceFunc // 不存在的操作 } // NewCache 实例化 -func (c *RedisClient) NewCache(config *RedisCacheConfig) *RedisClientCache { - cc := &RedisClientCache{config: config} - cc.operation = c - return cc +func (r *RedisClient) NewCache(config *RedisCacheConfig) *RedisClientCache { + return &RedisClientCache{ + defaultExpiration: config.Expiration, + operation: r, + } } // NewCacheDefaultExpiration 实例化 -func (c *RedisClient) NewCacheDefaultExpiration() *RedisClientCache { - cc := &RedisClientCache{} - cc.config.DefaultExpiration = time.Minute * 30 // 默认过期时间 - cc.operation = c - return cc +func (r *RedisClient) NewCacheDefaultExpiration() *RedisClientCache { + return &RedisClientCache{ + defaultExpiration: time.Minute * 30, + operation: r, + } } // GetString 缓存操作 @@ -44,7 +51,7 @@ func (rc *RedisClientCache) GetString(ctx context.Context, key string) (ret stri // 如果不存在,则调用GetterString ret, err := rc.operation.Get(ctx, key).Result() if err != nil { - rc.operation.Set(ctx, key, f(), rc.config.DefaultExpiration) + rc.operation.Set(ctx, key, f(), rc.defaultExpiration) ret, _ = rc.operation.Get(ctx, key).Result() } @@ -63,7 +70,7 @@ func (rc *RedisClientCache) GetInterface(ctx context.Context, key string, result ret, err := rc.operation.Get(ctx, key).Result() if err != nil { - rc.operation.Set(ctx, key, f(), rc.config.DefaultExpiration) + rc.operation.Set(ctx, key, f(), rc.defaultExpiration) ret, _ = rc.operation.Get(ctx, key).Result() } @@ -85,5 +92,5 @@ func (rc *RedisClientCache) GetInterfaceKey(ctx context.Context, key string, res // SetInterfaceKey 设置key值 func (rc *RedisClientCache) SetInterfaceKey(ctx context.Context, key string, value interface{}) (string, error) { marshal, _ := json.Marshal(value) - return rc.operation.Set(ctx, key, marshal, rc.config.DefaultExpiration).Result() + return rc.operation.Set(ctx, key, marshal, rc.defaultExpiration).Result() } diff --git a/redis_curd.go b/redis_curd.go index 92792e5..93ac65e 100644 --- a/redis_curd.go +++ b/redis_curd.go @@ -7,64 +7,64 @@ import ( ) // Set 设置一个key的值 -func (c *RedisClient) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *redis.StatusCmd { - return c.Db.Set(ctx, key, value, expiration) +func (r *RedisClient) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *redis.StatusCmd { + return r.Db.Set(ctx, key, value, expiration) } // Get 查询key的值 -func (c *RedisClient) Get(ctx context.Context, key string) *redis.StringCmd { - return c.Db.Get(ctx, key) +func (r *RedisClient) Get(ctx context.Context, key string) *redis.StringCmd { + return r.Db.Get(ctx, key) } // GetSet 设置一个key的值,并返回这个key的旧值 -func (c *RedisClient) GetSet(ctx context.Context, key string, value interface{}) *redis.StringCmd { - return c.Db.GetSet(ctx, key, value) +func (r *RedisClient) GetSet(ctx context.Context, key string, value interface{}) *redis.StringCmd { + return r.Db.GetSet(ctx, key, value) } // SetNX 如果key不存在,则设置这个key的值 -func (c *RedisClient) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *redis.BoolCmd { - return c.Db.SetNX(ctx, key, value, expiration) +func (r *RedisClient) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *redis.BoolCmd { + return r.Db.SetNX(ctx, key, value, expiration) } // MGet 批量查询key的值 -func (c *RedisClient) MGet(ctx context.Context, keys ...string) *redis.SliceCmd { - return c.Db.MGet(ctx, keys...) +func (r *RedisClient) MGet(ctx context.Context, keys ...string) *redis.SliceCmd { + return r.Db.MGet(ctx, keys...) } // MSet 批量设置key的值 // MSet(map[string]interface{}{"key1": "value1", "key2": "value2"}) -func (c *RedisClient) MSet(ctx context.Context, values map[string]interface{}) *redis.StatusCmd { - return c.Db.MSet(ctx, values) +func (r *RedisClient) MSet(ctx context.Context, values map[string]interface{}) *redis.StatusCmd { + return r.Db.MSet(ctx, values) } // Incr 针对一个key的数值进行递增操作 -func (c *RedisClient) Incr(ctx context.Context, key string) *redis.IntCmd { - return c.Db.Incr(ctx, key) +func (r *RedisClient) Incr(ctx context.Context, key string) *redis.IntCmd { + return r.Db.Incr(ctx, key) } // IncrBy 针对一个key的数值进行递增操作,指定每次递增多少 -func (c *RedisClient) IncrBy(ctx context.Context, key string, value int64) *redis.IntCmd { - return c.Db.IncrBy(ctx, key, value) +func (r *RedisClient) IncrBy(ctx context.Context, key string, value int64) *redis.IntCmd { + return r.Db.IncrBy(ctx, key, value) } // Decr 针对一个key的数值进行递减操作 -func (c *RedisClient) Decr(ctx context.Context, key string) *redis.IntCmd { - return c.Db.Decr(ctx, key) +func (r *RedisClient) Decr(ctx context.Context, key string) *redis.IntCmd { + return r.Db.Decr(ctx, key) } // DecrBy 针对一个key的数值进行递减操作,指定每次递减多少 -func (c *RedisClient) DecrBy(ctx context.Context, key string, value int64) *redis.IntCmd { - return c.Db.DecrBy(ctx, key, value) +func (r *RedisClient) DecrBy(ctx context.Context, key string, value int64) *redis.IntCmd { + return r.Db.DecrBy(ctx, key, value) } // Del 删除key操作,支持批量删除 -func (c *RedisClient) Del(ctx context.Context, keys ...string) *redis.IntCmd { - return c.Db.Del(ctx, keys...) +func (r *RedisClient) Del(ctx context.Context, keys ...string) *redis.IntCmd { + return r.Db.Del(ctx, keys...) } // Keys 按前缀获取所有 key -func (c *RedisClient) Keys(ctx context.Context, prefix string) *redis.SliceCmd { - values, _ := c.Db.Keys(ctx, prefix).Result() +func (r *RedisClient) Keys(ctx context.Context, prefix string) *redis.SliceCmd { + values, _ := r.Db.Keys(ctx, prefix).Result() if len(values) <= 0 { return &redis.SliceCmd{} } @@ -72,5 +72,5 @@ func (c *RedisClient) Keys(ctx context.Context, prefix string) *redis.SliceCmd { for _, value := range values { keys = append(keys, value) } - return c.MGet(ctx, keys...) + return r.MGet(ctx, keys...) } diff --git a/redis_curd_channel.go b/redis_curd_channel.go index 1049159..bb57a0d 100644 --- a/redis_curd_channel.go +++ b/redis_curd_channel.go @@ -6,26 +6,26 @@ import ( ) // Subscribe 订阅channel -func (c *RedisClient) Subscribe(ctx context.Context, channels ...string) *redis.PubSub { - return c.Db.Subscribe(ctx, channels...) +func (r *RedisClient) Subscribe(ctx context.Context, channels ...string) *redis.PubSub { + return r.Db.Subscribe(ctx, channels...) } // PSubscribe 订阅channel支持通配符匹配 -func (c *RedisClient) PSubscribe(ctx context.Context, channels ...string) *redis.PubSub { - return c.Db.PSubscribe(ctx, channels...) +func (r *RedisClient) PSubscribe(ctx context.Context, channels ...string) *redis.PubSub { + return r.Db.PSubscribe(ctx, channels...) } // Publish 将信息发送到指定的channel -func (c *RedisClient) Publish(ctx context.Context, channel string, message interface{}) *redis.IntCmd { - return c.Db.Publish(ctx, channel, message) +func (r *RedisClient) Publish(ctx context.Context, channel string, message interface{}) *redis.IntCmd { + return r.Db.Publish(ctx, channel, message) } // PubSubChannels 查询活跃的channel -func (c *RedisClient) PubSubChannels(ctx context.Context, pattern string) *redis.StringSliceCmd { - return c.Db.PubSubChannels(ctx, pattern) +func (r *RedisClient) PubSubChannels(ctx context.Context, pattern string) *redis.StringSliceCmd { + return r.Db.PubSubChannels(ctx, pattern) } // PubSubNumSub 查询指定的channel有多少个订阅者 -func (c *RedisClient) PubSubNumSub(ctx context.Context, channels ...string) *redis.StringIntMapCmd { - return c.Db.PubSubNumSub(ctx, channels...) +func (r *RedisClient) PubSubNumSub(ctx context.Context, channels ...string) *redis.StringIntMapCmd { + return r.Db.PubSubNumSub(ctx, channels...) } diff --git a/redis_get.go b/redis_get.go index 6eb83ae..af04c43 100644 --- a/redis_get.go +++ b/redis_get.go @@ -3,6 +3,6 @@ package dorm import "github.com/go-redis/redis/v9" // GetDb 获取驱动 -func (c *RedisClient) GetDb() *redis.Client { - return c.Db +func (r *RedisClient) GetDb() *redis.Client { + return r.Db } diff --git a/redis_list_operation.go b/redis_list_operation.go index b231ce2..9831b73 100644 --- a/redis_list_operation.go +++ b/redis_list_operation.go @@ -11,8 +11,8 @@ type ListOperation struct { } // NewListOperation 列表(list)类型数据操作 https://www.tizi365.com/archives/299.html -func (c *RedisClient) NewListOperation() *ListOperation { - return &ListOperation{db: c.Db, ctx: context.Background()} +func (r *RedisClient) NewListOperation() *ListOperation { + return &ListOperation{db: r.Db, ctx: context.Background()} } // LPush 从列表左边插入数据 diff --git a/redis_simple_cache.go b/redis_simple_cache.go index 667d26f..e760b1b 100644 --- a/redis_simple_cache.go +++ b/redis_simple_cache.go @@ -24,7 +24,7 @@ type SimpleCache struct { } // NewSimpleCache 构造函数 -func (c *RedisClient) NewSimpleCache(operation *StringOperation, expire time.Duration, serializer string) *SimpleCache { +func (r *RedisClient) NewSimpleCache(operation *StringOperation, expire time.Duration, serializer string) *SimpleCache { return &SimpleCache{ Operation: operation, // 操作类 Expire: expire, // 过去时间 diff --git a/redis_simple_interface_cache.go b/redis_simple_interface_cache.go index 3a4fba1..795b492 100644 --- a/redis_simple_interface_cache.go +++ b/redis_simple_interface_cache.go @@ -15,7 +15,7 @@ type SimpleInterfaceCache struct { } // NewSimpleInterfaceCache 构造函数 -func (c *RedisClient) NewSimpleInterfaceCache(operation *SimpleOperation, expire time.Duration) *SimpleInterfaceCache { +func (r *RedisClient) NewSimpleInterfaceCache(operation *SimpleOperation, expire time.Duration) *SimpleInterfaceCache { return &SimpleInterfaceCache{ Operation: operation, // 操作类 Expire: expire, // 过期时间 diff --git a/redis_simple_json_cache.go b/redis_simple_json_cache.go index ddbdf71..d51f8a6 100644 --- a/redis_simple_json_cache.go +++ b/redis_simple_json_cache.go @@ -15,7 +15,7 @@ type SimpleJsonCache struct { } // NewSimpleJsonCache 构造函数 -func (c *RedisClient) NewSimpleJsonCache(operation *StringOperation, expire time.Duration) *SimpleJsonCache { +func (r *RedisClient) NewSimpleJsonCache(operation *StringOperation, expire time.Duration) *SimpleJsonCache { return &SimpleJsonCache{ Operation: operation, // 操作类 Expire: expire, // 过期时间 diff --git a/redis_simple_operation.go b/redis_simple_operation.go index c326e3a..661ba46 100644 --- a/redis_simple_operation.go +++ b/redis_simple_operation.go @@ -11,9 +11,9 @@ type SimpleOperation struct { ctx context.Context } -func (c *RedisClient) NewSimpleOperation() *SimpleOperation { +func (r *RedisClient) NewSimpleOperation() *SimpleOperation { return &SimpleOperation{ - db: c.Db, + db: r.Db, ctx: context.Background(), } } diff --git a/redis_simple_sring_cache.go b/redis_simple_sring_cache.go index 2889d03..1216ab8 100644 --- a/redis_simple_sring_cache.go +++ b/redis_simple_sring_cache.go @@ -14,7 +14,7 @@ type SimpleStringCache struct { } // NewSimpleStringCache 构造函数 -func (c *RedisClient) NewSimpleStringCache(operation *StringOperation, expire time.Duration) *SimpleStringCache { +func (r *RedisClient) NewSimpleStringCache(operation *StringOperation, expire time.Duration) *SimpleStringCache { return &SimpleStringCache{ Operation: operation, // 操作类 Expire: expire, // 过期时间 diff --git a/redis_string_operation.go b/redis_string_operation.go index 90d1dd8..c2c7ed3 100644 --- a/redis_string_operation.go +++ b/redis_string_operation.go @@ -11,9 +11,9 @@ type StringOperation struct { ctx context.Context } -func (c *RedisClient) NewStringOperation() *StringOperation { +func (r *RedisClient) NewStringOperation() *StringOperation { return &StringOperation{ - db: c.Db, + db: r.Db, ctx: context.Background(), } }