package com.stylefeng.guns.modular.system.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.stylefeng.guns.core.util.ToolUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; /** * Redis工具类 */ @Component public class RedisUtil { @Autowired private RestTemplate internalRestTemplate; /** * 向redis中存储字符串没有过期时间 * @param key * @param value */ public void setStrValue(String key, String value){ if(ToolUtil.isNotEmpty(key)){ //发送验证码短信 HttpHeaders headers = new HttpHeaders(); // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //将请求头部和参数合成一个请求 MultiValueMap params = new LinkedMultiValueMap<>(); params.add("key", key); params.add("value", value); HttpEntity> requestEntity = new HttpEntity<>(params, headers); String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue_", requestEntity, String.class); JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); if(jsonObject.getIntValue("code") != 200){ System.err.println("调用redis出错了"); } } } /** * 以分钟为单位设置存储值(设置过期时间) * @param key * @param value * @param time 秒 */ public void setStrValue(String key, String value, int time){ if(ToolUtil.isNotEmpty(key)){ //发送验证码短信 HttpHeaders headers = new HttpHeaders(); // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //将请求头部和参数合成一个请求 MultiValueMap params = new LinkedMultiValueMap<>(); params.add("key", key); params.add("value", value); params.add("time", String.valueOf(time)); HttpEntity> requestEntity = new HttpEntity<>(params, headers); String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue", requestEntity, String.class); JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); if(jsonObject.getIntValue("code") != 200){ System.err.println("调用redis出错了"); } } } /** * 从redis中获取值 * @param key * @return */ public String getValue(String key){ if(ToolUtil.isNotEmpty(key)){ HttpHeaders headers = new HttpHeaders(); // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //将请求头部和参数合成一个请求 MultiValueMap params = new LinkedMultiValueMap<>(); params.add("key", key); HttpEntity> requestEntity = new HttpEntity<>(params, headers); String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/getValue",requestEntity , String.class); JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); if(jsonObject.getIntValue("code") != 200){ System.err.println("调用redis出错了"); } return jsonObject.getString("data"); } return null; } /** * 删除key * @param key */ public String remove(String key){ if(ToolUtil.isNotEmpty(key)){ HttpHeaders headers = new HttpHeaders(); // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //将请求头部和参数合成一个请求 MultiValueMap params = new LinkedMultiValueMap<>(); params.add("key", key); HttpEntity> requestEntity = new HttpEntity<>(params, headers); String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/remove",requestEntity , String.class); JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); if(jsonObject.getIntValue("code") != 200){ System.err.println("调用redis出错了"); } return jsonObject.getString("data"); } return null; } }