springboot (整理上课内容 关于redis)---07

Redis

windows下安装Redis

Springboot中集成Redis

生成token并存到redis

更新用户个性签名接口

退出登录接口

1. Redis 基于内存的 NoSQL 数据库
     Redis 是目前最流行的 键值对 存储数据库,由一个 Key Value 映射的字典构成,其中 Value 的类型不局限于字符串,还支持列表、集        合、有序集合、散列等
    与 MySQL Oracle SQL Server 等传统关系型数据库相比,它最大的优势就是读写速度快
2.下载压缩文件并解压:https://redis.io/download
  方法一:cd 到安装目录,并运行命令 redis-server.exe  启动 服务
  方法二

   (1)把 redis 设置为一个 windows 服务: redis-server.exe  --service-install  redis.windows-service.conf 

   (2)开启服务:redis-server.exe --service-start

   (3)  可以在配置文件中(redis.windows.conf,这个文件中密码是被注释的443行,打开之后可以设置密码)

              设置密码:requirepass xxxxx

3.

(1)pom.xml 中引入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

(2)配置文件中配置redis的连接信息

       spring.redis.host=127.0.0.1
       spring.redis.port=6379
       spring.redis.database=0

4.

(1)生成token并存到redis

 String token= UUID.randomUUID().toString();
 redisTemplate.opsForValue().set(token, JSONObject.toJSONString(user));

(2) 整合 fastjson依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.76</version>
        </dependency>

5.controller

@PostMapping("/signature")
    public ApiResponse updateSignature(@Valid @RequestBody SignatureSo signatureSo, @RequestHeader("token") String token){
        if(token==null || token.equals("")){
            return new ApiResponse(false,"用户未登陆,请先登录");


        }else {
           String strUser= (String) redisTemplate.opsForValue().get(token);
            User user= JSONObject.parseObject(strUser,User.class);
            if(user==null){
                return new ApiResponse(false,"请重新登陆");

            }else {
                user.setPersonalizedSignature(signatureSo.getSignature());
                return userService.updateSignature(user);
            }
        }
    }

 service 层

public ApiResponse updateSignature(User user){
        int count=userMapper.updateByPrimaryKeySelective(user);
        if(count==0){
            return new ApiResponse(false,"更新失败");

        }else {
            return new ApiResponse(true,"更新成功");

        }

    }

6.

@PostMapping("/logout")
    public ApiResponse logout(@RequestHeader("token") String token){
        if(token==null || token.equals("")){
            return new ApiResponse(false,"用户未登陆,请先登录");


        }else {
            String strUser= (String) redisTemplate.opsForValue().get(token);
            User user= JSONObject.parseObject(strUser,User.class);
            if(user==null){
                return new ApiResponse(false,"用户认证不正确");

            }else {
               redisTemplate.delete(token);
               return new ApiResponse(true,"已退出登录");

            }
        }
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值