常用校验token加上二级缓存

This commit is contained in:
wangliwen 2022-07-05 09:21:03 +08:00
parent 0f25b9414e
commit c69efa101f
2 changed files with 70 additions and 56 deletions

View File

@ -57,4 +57,13 @@
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
<!-- getByToken缓存 -->
<cache name="getByToken"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="60"
timeToLiveSeconds="600"
overflowToDisk="true"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>

View File

@ -4,6 +4,8 @@ import io.renren.common.service.impl.BaseServiceImpl;
import io.renren.dao.TokenDao;
import io.renren.entity.TokenEntity;
import io.renren.service.TokenService;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.Date;
@ -12,17 +14,20 @@ import java.util.UUID;
@Service
public class TokenServiceImpl extends BaseServiceImpl<TokenDao, TokenEntity> implements TokenService {
private static final String getByTokenKey = "getByToken";
/**
* 12小时后过期
*/
private final static int EXPIRE = 3600 * 12;
@Override
@Cacheable(value = getByTokenKey, key = "#p1")
public TokenEntity getByToken(String token) {
return baseDao.getByToken(token);
}
@Override
@CacheEvict(key = getByTokenKey, allEntries = true)
public TokenEntity createToken(Long userId) {
//当前时间
Date now = new Date();