u014353911
wuruize888
采纳率88.2%
2018-04-16 07:16 阅读 1.0k

springboot redis session问题,谢谢解答

40

最近进展,确定是可以写入到redis里。在读的时候报空指针。
写的id和读的id不一致,这个怎么解?

redis配置文件
##Redis数据库索引(默认为0),如果设置为1,那么存入的key-value都存放在select 1中
spring.redis.database=0
## Redis服务器地址
spring.redis.host=123.179.128.196
## Redis服务器连接端口
spring.redis.port=6379
## Redis服务器连接密码(默认为空)
spring.redis.password=123456
##连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=40000
##连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
## 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
## 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0




  @RequestMapping(value = "/reg",method = RequestMethod.POST)
    public Result codeSend(@RequestParam("mobile") String mobiles, HttpSession httpSession) throws Exception {



        String smsCode = F.ranDom(5);

        httpSession.removeAttribute("codes");
        httpSession.setAttribute("codes", smsCode);
        System.err.println("读取测试=" + httpSession.getAttribute("codes").toString());

        return resultUT.success(LogEnum.LOG_F0);

    }

    @RequestMapping(value = "/get1")
    public String gets(HttpSession session) {
        return session.getAttribute("codes").toString();
    }


    @RequestMapping("/set")
    public String index(HttpSession httpSession) {
        String smsCode = F.ranDom(5);
        httpSession.setAttribute("codes", smsCode);
        return "ok";
    }

    @RequestMapping("/get")
    public String hello(HttpSession httpSession) {
        return httpSession.getId() + "=" + httpSession.getAttribute("codes").toString();
    }

用的redis替代原来的session,这上面4个方法,其中codeSend可以写入,但是用get读取就会报java.lang.NullPointerException,set和get写入和读取session都正常。比较郁闷,问题出在哪里?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • eboge eboge 2018-04-16 07:27

    你看看你是不是同时开2个本地系统的原因, 如果是的话, 在HOSTS文件里, 自己给每个系统配一个本地访问域名,这样就不会窜了

    点赞 评论 复制链接分享
  • guo_yandong 果栋-大前端 2018-04-16 07:30

    如果是的话, 在HOSTS文件里, 自己给每个系统配一个本地访问域名,这样就不会窜

    点赞 评论 复制链接分享
  • qq897793423 远方的兔子 2018-04-16 07:34

    如果get出问题了,第一步看前端发送给你的sessionId是不是一直都是保持一致的,
    如果保持一致说明是你后台的问题。是你后台的问题的话就先看这个session
    的sessionId,是不是和前端一致,如果一致就表示你并没有把数据保存到session中。

    点赞 评论 复制链接分享
  • qq_30281539 qq_30281539 2018-04-16 07:52
  • keyp_su Everglow_su 2018-04-16 10:16

    可能是从不同的服务器访问的原因

    点赞 评论 复制链接分享

相关推荐