package cache import ( "context" "fmt" "github.com/go-redis/redis/v8" "log-server/global" "time" ) type Cache struct { } func (s *Cache) DelBatheHsCache(ctx context.Context, key string) (err error) { keys, err := global.GVA_REDIS.HKeys(ctx, key).Result() if err != nil { if err == redis.Nil { return nil } return } for _, v := range keys { global.GVA_REDIS.HDel(ctx, key, v) } return } func (s *Cache) DelBatheCache(ctx context.Context, key string) (err error) { keys, err := global.GVA_REDIS.Keys(ctx, key).Result() if err != nil { if err == redis.Nil { return nil } return } for _, v := range keys { fmt.Println(v) global.GVA_REDIS.Del(ctx, v) } return } func (s *Cache) GetCacheKeys(ctx context.Context, keys string) (key []string, err error) { key, err = global.GVA_REDIS.Keys(ctx, keys).Result() return } func (s *Cache) SetCacheNum(ctx context.Context, key string) (err error) { bl, err := s.ExistsKey(ctx, key) if err != nil { return err } if !bl { err = global.GVA_REDIS.Set(ctx, key, 1, time.Hour*48).Err() return err } else { err = global.GVA_REDIS.Incr(ctx, key).Err() return err } } func (s *Cache) SetCacheStr(ctx context.Context, key string, value interface{}) (err error) { err = global.GVA_REDIS.Set(ctx, key, value, time.Hour*30).Err() return err } func (s *Cache) GetCacheNum(ctx context.Context, key string) (num int, err error) { num, err = global.GVA_REDIS.Get(ctx, key).Int() if err != nil { if err == redis.Nil { return 0, nil } return 0, err } return num, err } func (s *Cache) GetCacheStr(ctx context.Context, key string) (str string, err error) { str, err = global.GVA_REDIS.Get(ctx, key).Result() if err != nil { if err == redis.Nil { return "", nil } return "", err } return str, err } func (s *Cache) ExistsKey(ctx context.Context, key string) (bool, error) { isNull, err := global.GVA_REDIS.Exists(ctx, key).Result() if err != nil { return false, err } if isNull == 0 { return false, nil } else { return true, nil } }