分布式会话实现(Springboot+redis)

2019-07-11  本文已影响0人  YoSaukit

分布式会话实现(Springboot+redis)

安装

配置

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

        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
            <version>2.1.5.RELEASE</version>
        </dependency>
    @Component
    @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)
    public class RedisConfig {

    }
 
    #配置springboot对redis的依赖
    spring.redis.host=127.0.0.1
    spring.redis.port=6379
    spring.redis.database=10
    #spring.redis.password=

    #设置jedis连接池
    spring.redis.jedis.pool.max-active=50
    spring.redis.jedis.pool.min-idle=20
    bind *ip*

redis应用

    @Autowired
    private RedisTemplate redisTemplate;
    //修改成若用户登录验证成功后将对应的登录信息和登录凭证一起存入redis中
    //生成登录凭证token, UUID
    String uuidToken = UUID.randomUUID().toString();
    uuidToken = uuidToken.replace("-","");
    //建立token和用户登录态之间的联系
    redisTemplate.opsForValue().set(uuidToken,userModel);
    redisTemplate.expire(uuidToken,1, TimeUnit.HOURS);
    var token = data.data;
    window.localStorage["token"] = token;
        String token = httpServletRequest.getParameterMap().get("token")[0];
        if(StringUtils.isEmpty(token)){
            throw new BusinessException(EmBusinessError.USER_NOT_LOGIN, "用户还未登陆不能下单");
        }
        UserModel userModel = (UserModel) redisTemplate.opsForValue().get(token);    
上一篇 下一篇

猜你喜欢

热点阅读