Spaces:
Build error
Build error
| package model | |
| import ( | |
| "fmt" | |
| "one-api/common" | |
| "one-api/constant" | |
| "time" | |
| ) | |
| func cacheSetToken(token Token) error { | |
| key := common.GenerateHMAC(token.Key) | |
| token.Clean() | |
| err := common.RedisHSetObj(fmt.Sprintf("token:%s", key), &token, time.Duration(common.RedisKeyCacheSeconds())*time.Second) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| func cacheDeleteToken(key string) error { | |
| key = common.GenerateHMAC(key) | |
| err := common.RedisDelKey(fmt.Sprintf("token:%s", key)) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| func cacheIncrTokenQuota(key string, increment int64) error { | |
| key = common.GenerateHMAC(key) | |
| err := common.RedisHIncrBy(fmt.Sprintf("token:%s", key), constant.TokenFiledRemainQuota, increment) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| func cacheDecrTokenQuota(key string, decrement int64) error { | |
| return cacheIncrTokenQuota(key, -decrement) | |
| } | |
| func cacheSetTokenField(key string, field string, value string) error { | |
| key = common.GenerateHMAC(key) | |
| err := common.RedisHSetField(fmt.Sprintf("token:%s", key), field, value) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| // CacheGetTokenByKey 从缓存中获取 token,如果缓存中不存在,则从数据库中获取 | |
| func cacheGetTokenByKey(key string) (*Token, error) { | |
| hmacKey := common.GenerateHMAC(key) | |
| if !common.RedisEnabled { | |
| return nil, fmt.Errorf("redis is not enabled") | |
| } | |
| var token Token | |
| err := common.RedisHGetObj(fmt.Sprintf("token:%s", hmacKey), &token) | |
| if err != nil { | |
| return nil, err | |
| } | |
| token.Key = key | |
| return &token, nil | |
| } | |