package com.goodwe.admin.configure; import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfig { @Bean @SuppressWarnings("all") public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); template.setConnectionFactory(factory); FastJsonRedisSerializer fastJsonRedisSerializer=new FastJsonRedisSerializer<>(Class.class); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); // key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson template.setValueSerializer(fastJsonRedisSerializer); // hash的value序列化方式采用jackson template.setHashValueSerializer(fastJsonRedisSerializer); template.afterPropertiesSet(); return template; } }
//缓存的使用与清除
package com.goodwe.admin.controller; import com.alibaba.fastjson.JSON; import com.goodwe.daomain.plus.entity.User; import com.goodwe.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @Controller @RequestMapping("/") public class UserController { @Autowired private UserService userService; @Autowired private RedisTemplate redisTemplate; @RequestMapping(value = "/test") public String test(Model model) { List<User> users = null; Object u = redisTemplate.opsForValue().get("users"); if(null!=u){ users = JSON.parseArray(u.toString(),User.class); System.out.println("缓存中读取数据"); }else{ users = userService.list(); System.out.println("缓存中无数据-++++--后台请求"); redisTemplate.opsForValue().set("users",JSON.toJSONString(users)); } model.addAttribute("users", users); return "list"; } @RequestMapping("/deleteReadis") public void deleteReadis(Model model, HttpServletResponse response) { String res = "failed to delete readis"; if(userService.deleteReadis()){ res = "success to delete readis"; } try { response.getWriter().write(res); } catch (IOException e) { e.printStackTrace(); } } }