package service import ( "encoding/json" "time" "newaterobot-process/utils" ) // RedisService Redis服务 type RedisService struct { redisUtil *utils.RedisUtil } var redisService = new(RedisService) // NewRedisService 创建Redis服务实例 func NewRedisService() *RedisService { return &RedisService{ redisUtil: utils.GetRedisUtil(), } } // GetRedisService 获取Redis服务实例 func GetRedisService() *RedisService { return redisService } // SetString 设置字符串值 func (r *RedisService) SetString(key, value string, expiration time.Duration) error { return r.redisUtil.SetString(key, value, expiration) } // GetString 获取字符串值 func (r *RedisService) GetString(key string) (string, error) { return r.redisUtil.GetString(key) } // SetObject 设置对象值 func (r *RedisService) SetObject(key string, obj interface{}, expiration time.Duration) error { return r.redisUtil.SetObject(key, obj, expiration) } // GetObject 获取对象值 func (r *RedisService) GetObject(key string, obj interface{}) error { return r.redisUtil.GetObject(key, obj) } // Exists 检查键是否存在 func (r *RedisService) Exists(key string) (bool, error) { return r.redisUtil.Exists(key) } // Del 删除键 func (r *RedisService) Del(key string) error { return r.redisUtil.Del(key) } // SetExpire 设置带过期时间的键值对 func (r *RedisService) SetExpire(key string, value interface{}, expiration time.Duration) error { return r.redisUtil.SetExpire(key, value, expiration) } // GetAndDecode 获取并解码JSON对象 func (r *RedisService) GetAndDecode(key string, dest interface{}) error { data, err := r.redisUtil.GetString(key) if err != nil { return err } return json.Unmarshal([]byte(data), dest) } // Increment 增加计数器 func (r *RedisService) Increment(key string) error { return utils.GetRedisUtil().SetExpire(key, 1, time.Hour) }