2020/06/02 后台出现getSession()为null以及redis内存满导致的无法继续存入数据的问题

getSession()为null的问题

  • 之前开发的小程序已经发布成功了,这几天使用的时候忽然出了一个很大的问题,就是预订的时候提示“用户未注册”,排查了一番后,发现是处理预订的接口收到的SessionId是null,导致拿不到用户的openid。
  • 一开始我使用HttpServletRequest.getSession(true).getId()能成功获取sessionId,现在不知道为什么不行了,网上的博客看的也不是很清楚,待到往后自己学的东西多一点后再想办法解决。
  • 我的解决方法呢,不使用Httpsession,自己生成一个sessionId:
public String generateId() {
        System.out.println(UUID.randomUUID().toString());
        return UUID.randomUUID().toString();
}
  • 然后将生成的sessionId和获取的openid存入redis,并把sessionId返回给前端。

redis内存满导致的无法继续存入数据的问题

  • 前面那个问题解决了,我把jar包放到服务器跑后,前端发现依然存在预订时“用户未注册”的问题。心态有点小崩,我再检查了一下sessionId有成功返回,并在请求头里面传到接口。然后我仔细看了一下服务器运行的日志,发现了redis有抛出异常,提示我:

    (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

  • 然后解决方法时:

    • 进入redis服务端:redis-cli
    • 输入命令:config set stop-writes-on-bgsave-error no
    • PS:有时候输入命令会提示报错,有可能是密码的问题,可以采用下面的命令:
    • 先输入命令:auth “xxx” (xxx是你的redis的密码)
    • 提示ok后,再输入:config set stop-writes-on-bgsave-error no
    • 提示ok后就行了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值