利用redis代替session保存用户 减少tomcat压力
背景:
通常系统中用户登录之后会保存用户信息到session,查询个人当前登录用户所带信息时,直接在session中获取当前登录用户,然后通过sql 的where条件筛选。
但是如果大量用户的信息存到session中会拖慢服务器的效率,甚至会宕机。
所以利用缓存Redis 代替 session 保存用户信息,用sessionId做为key,用户id作为value保存到redis
踩坑:前后端分离系统进行跨域请求时session并不共享,会导致sessionId不一致的情况
首先处理跨域问题
springboot 有处理跨域的注解@CrossOrigin
这样已经可以处理跨域请求,但并不共享
注解修改如下:
@CrossOrigin(allowCredentials="true",allowedHeaders="*")
同时前端js 部分加入:
xhrFields:{ withCredentials:true },
function ajaxtest(){ var url = "http://10.11.64.198:8888/t"; $.ajax({ url: url, type: POST, async:true, xhrFields:{ withCredentials:true }, success: function(respon){ }, error: function(){ alert(服务器发生错误!); } }); }