Redis的基本使用

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);
    }

 

posted @ 2020-07-02 22:10  shouyaya  阅读(872)  评论(0)    收藏  举报