使用radis存储时效性数据
/**
* Token认证:Token的有效期,需要使用同一个Token鉴权时,可以缓存起来,避免频繁调用。
*/
public String getToken() throws Exception {
DataMsg dataMsg = DataMsg.successMsg("token获取:成功!");
String responStr = null;
String token = null;
//从redis中获取token
Object o = redisTemplate.opsForValue().get("iam-token");
if(o!=null){
token = o.toString();
}
//token过期后重新创建
if(token == null || token.equals("")) {
responStr = HttpUtil.get("获取token的url");
if (null == responStr || null == com.alibaba.fastjson.JSONObject.parseObject(responStr)) {
dataMsg.fail("token获取失败!");
return "";
} else {
if (!com.alibaba.fastjson.JSONObject.parseObject(responStr).getString("message").equalsIgnoreCase("ok")) {
dataMsg.fail("token获取失败!");
return "";
} else {
String result = com.alibaba.fastjson.JSONObject.parseObject(responStr).getString("result");
if (null != result) {
com.alibaba.fastjson.JSONObject obj = JSONObject.parseObject(result);
if (null != obj) {
token = obj.getString("access_token");
int expires_in = obj.getInteger("expires_in");
redisTemplate.opsForValue().set("iam-token", token, expires_in, TimeUnit.SECONDS);
}
}
}
}
}
return token;
}
以token为例。很多时效性数据都可以以此进行存储。

浙公网安备 33010602011771号