Răsfoiți Sursa

fix: fix redis error

CaIon 1 an în urmă
părinte
comite
70bdb8ca90
2 a modificat fișierele cu 8 adăugiri și 1 ștergeri
  1. 5 0
      common/redis.go
  2. 3 1
      model/cache.go

+ 5 - 0
common/redis.go

@@ -57,6 +57,11 @@ func RedisGet(key string) (string, error) {
 	return RDB.Get(ctx, key).Result()
 }
 
+func RedisExpire(key string, expiration time.Duration) error {
+	ctx := context.Background()
+	return RDB.Expire(ctx, key, expiration).Err()
+}
+
 func RedisGetEx(key string, expiration time.Duration) (string, error) {
 	ctx := context.Background()
 	return RDB.GetSet(ctx, key, expiration).Result()

+ 3 - 1
model/cache.go

@@ -49,7 +49,7 @@ func CacheGetTokenByKey(key string) (*Token, error) {
 		return GetTokenByKey(key)
 	}
 	var token *Token
-	tokenObjectString, err := common.RedisGetEx(fmt.Sprintf("token:%s", key), time.Duration(TokenCacheSeconds)*time.Second)
+	tokenObjectString, err := common.RedisGet(fmt.Sprintf("token:%s", key))
 	if err != nil {
 		// 如果缓存中不存在,则从数据库中获取
 		token, err = GetTokenByKey(key)
@@ -59,6 +59,8 @@ func CacheGetTokenByKey(key string) (*Token, error) {
 		err = cacheSetToken(token)
 		return token, nil
 	}
+	// 如果缓存中存在,则续期时间
+	err = common.RedisExpire(fmt.Sprintf("token:%s", key), time.Duration(TokenCacheSeconds)*time.Second)
 	err = json.Unmarshal([]byte(tokenObjectString), &token)
 	return token, err
 }