diff --git a/domain/model/common/cache_medal.go b/domain/model/common/cache_medal.go index e95d0c9bae2fa8d4e65786bdade081dc0d02f7ad..910f8794e0eabaabb95afc7d9a482a81e1d8e3f2 100644 --- a/domain/model/common/cache_medal.go +++ b/domain/model/common/cache_medal.go @@ -1,38 +1,24 @@ package common import ( - "context" - "encoding/json" - "git.hilo.cn/hilo-common/mylogrus" "git.hilo.cn/hilo-common/resource/mysql" - "git.hilo.cn/hilo-common/resource/redisCli" "git.hilo.cn/hilo-common/utils" - "hilo-group/_const/redis_key" - "hilo-group/myerr" + "github.com/bluele/gcache" "time" ) -func GetUserMedalMergeCache(userId mysql.ID) ([]uint32, error) { - bData, err := GetCache(redis_key.GetUserMedalMerge(userId)) - if err != nil { - return nil, myerr.WrapErr(err) - } +// 改成lru +var userMedalMergeLru = gcache.New(10000).LRU().Build() - res := make([]uint32, 0) - err = json.Unmarshal(bData, &res) - if err != nil { - return nil, myerr.WrapErr(err) +func GetUserMedalMergeCache(userId mysql.ID) ([]uint32, error) { + if data, err := userMedalMergeLru.Get(userId); err == nil { + return data.([]uint32), nil } - return res, nil + return nil, nil } -func SetUserMedalMergeCache(userId mysql.ID, data []uint32) error { - err := SetCache(redis_key.GetUserMedalMerge(userId), data, time.Hour*2) - if err != nil { - mylogrus.MyLog.Errorf("SetUserMedalMerge err:%s", err) - return myerr.WrapErr(err) - } - return nil +func SetUserMedalMergeCache(userId mysql.ID, data []uint32) { + _ = userMedalMergeLru.SetWithExpire(userId, data, time.Minute*15) } // 删除勋章缓存, 延迟删除 @@ -44,41 +30,6 @@ func DelUserMedalMergeCacheDelay(userId mysql.ID) { }() } -func DelUserMedalMergeCache(userId mysql.ID) error { - err := DelCache(redis_key.GetUserMedalMerge(userId)) - if err != nil { - mylogrus.MyLog.Errorf("DetUserMedalMerge err:%s, userId:%v", err, userId) - return myerr.WrapErr(err) - } - return nil -} - -func DelCache(key string) error { - err := redisCli.GetRedis().Del(context.Background(), key).Err() - if err != nil { - mylogrus.MyLog.Errorf("DelCache key:%s, err:%s", key, err) - return err - } - return nil -} - -func GetCache(key string) ([]byte, error) { - data, err := redisCli.GetRedis().Get(context.Background(), key).Bytes() - if err != nil { - return nil, err - } - return data, nil -} - -func SetCache(key string, data interface{}, expire time.Duration) error { - jData, err := json.Marshal(data) - if err != nil { - return err - } - err = redisCli.GetRedis().Set(context.Background(), key, jData, expire).Err() - if err != nil { - mylogrus.MyLog.Errorf("SetCache key:%s, data:%v, err:%s", key, data, err) - return err - } - return nil +func DelUserMedalMergeCache(userId mysql.ID) { + userMedalMergeLru.Remove(userId) } diff --git a/domain/model/user_m/medal.go b/domain/model/user_m/medal.go index c77cc3c748c64603a69dc9a487f5f2558cef59c8..0c0a9876e86551d1255c9dada43b4b18f7dacc2e 100644 --- a/domain/model/user_m/medal.go +++ b/domain/model/user_m/medal.go @@ -70,8 +70,8 @@ func GetUserMedalMerge(logger *logrus.Entry, db *gorm.DB, userId mysql.ID) ([]ui } } } - logger.Infof("maxGrade %+v", maxGrades) - logger.Infof("maxMedalIds %+v", maxMedalIds) + //logger.Infof("maxGrade %+v", maxGrades) + //logger.Infof("maxMedalIds %+v", maxMedalIds) mIds := result result = make([]uint32, 0)