| | |
| | | "time" |
| | | ) |
| | | |
| | | type userBaseInfo struct { |
| | | type UserBaseInfo struct { |
| | | UserId int |
| | | NickName string |
| | | } |
| | | |
| | | var userCache *expirable.LRU[string, *userBaseInfo] |
| | | var userCache *expirable.LRU[string, *UserBaseInfo] |
| | | |
| | | func init() { |
| | | //make cache with 5 minutes TTL and 100 max keys |
| | | userCache = expirable.NewLRU[string, *userBaseInfo](100, nil, time.Minute*5) |
| | | userCache = expirable.NewLRU[string, *UserBaseInfo](100, nil, time.Minute*5) |
| | | } |
| | | |
| | | func GetUserBaseCache(adminUserId string) *userBaseInfo { |
| | | func GetUserBaseCache(adminUserId string) *UserBaseInfo { |
| | | userCache, ok := userCache.Get(adminUserId) |
| | | if !ok { |
| | | userService := UserService{} |
| | |
| | | if err != nil { |
| | | return nil |
| | | } |
| | | baseInfo := &userBaseInfo{ |
| | | baseInfo := &UserBaseInfo{ |
| | | UserId: userRecord.ID, |
| | | NickName: userRecord.NickName, |
| | | } |
| | |
| | | return userCache |
| | | } |
| | | |
| | | func SetUserBaseCache(adminUserId string, user *userBaseInfo) { |
| | | func SetUserBaseCache(adminUserId string, user *UserBaseInfo) { |
| | | _ = userCache.Add(adminUserId, user) |
| | | } |