<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.0.7.RELEASE</version> </dependency> import org.springframework.beans.factory.annotation.Autowired; @Autowired private RedisTemplate redisTemplate; //获取token private String getToken() { String token=""; //查询redis是否有token ValueOperations ops = redisTemplate.opsForValue(); token = (String) ops.get("token"); if (StringUtils.isBlank(token)) { // 设置请求头 Map<String, String> headers = new HashMap<String, String>(); headers.put("Content-Type", "application/json; charset=utf-8"); headers.put("accept", "application/json; charset=utf-8"); String client_id = "P_OKAY001"; String client_secret = "VuVEh743"; JSONObject js = JSONObject.parseObject(doPost( "https://test-api.pingan.com.cn:20443/oauth/oauth2/access_token?client_id=" + client_id + "&grant_type=client_credentials&client_secret=" + client_secret, null, headers)); token = ((JSONObject) js.get("data")).getString("access_token"); ops.set("token",token,24, TimeUnit.HOURS); } return token; }
Redis的String数据结构
ValueOperations可以对String数据结构进行操作:
set void set(K key, V value);
使用:redisTemplate.opsForValue().set("name","tom"); 结果:redisTemplate.opsForValue().get("name") 输出结果为tom
set void set(K key, V value, long timeout, TimeUnit unit);
使用:redisTemplate.opsForValue().set("name","tom",10, TimeUnit.SECONDS); 结果:redisTemplate.opsForValue().get("name")由于设置的是10秒失效,十秒之内查询有结果,十秒之后返回为null