1.下载安装,Redis的客户端:Redis Desktop Manager
2. 连接服务器的Redis
3.引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
4.编写application.yml,配置连接Redis的host以及port等
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.0.153:3306/sell?characterEncoding=utf-8&useSSL=false username: root password: 123456 redis: host: 192.168.0.153 port: 6379
5. 实例通过Redis与cookie实现分布式系统的登入与登出
@GetMapping("/login") public ModelAndView login(@RequestParam("openid") String openid, HttpServletResponse response, Map<String, Object> map) { //1.从数据库检验openid SellerInfo sellerInfo = sellerService.findBySellOpenId(openid); if (sellerInfo == null) { map.put("msg", ResultEnum.LOGIN_FAIL.getMsg()); map.put("url", "/sell/seller/product/list"); return new ModelAndView("common/error", map); } else { //2.将openid存入redis String token = UUID.randomUUID().toString(); Integer expire = RedisConstant.EXPIRE; stringRedisTemplate.opsForValue().set(String.format(RedisConstant.TOKEN_PREFIX, token), sellerInfo.getUsername(), expire, TimeUnit.SECONDS); //3.将token存入cookie CookieUtil.set(response, CookieConstant.name, token, CookieConstant.expire); map.put("url", "/sell/seller/product/list"); return new ModelAndView("common/success", map); } } @GetMapping("logout") public ModelAndView logout(HttpServletRequest request, HttpServletResponse response,Map<String, Object> map){ //1.从request中获取对应的cookie Cookie cookie = CookieUtil.get(request); //2.将Redis对应的Token取消 String token = cookie.getValue(); stringRedisTemplate.opsForValue().getOperations().delete(String.format(RedisConstant.TOKEN_PREFIX,token)); //3.将Cookie对应的token取消 CookieUtil.set(response,CookieConstant.name,null,0); map.put("url", "/sell/seller/product/list"); map.put("msg",ResultEnum.LOGOUT_SUCCESS.getMsg()); return new ModelAndView("common/success", map); }