利用redis代替session保存用户 减少tomcat压力

背景:

通常系统中用户登录之后会保存用户信息到session,查询个人当前登录用户所带信息时,直接在session中获取当前登录用户,然后通过sql  的where条件筛选。

但是如果大量用户的信息存到session中会拖慢服务器的效率,甚至会宕机。

所以利用缓存Redis 代替 session 保存用户信息,用sessionId做为key,用户id作为value保存到redis

踩坑:前后端分离系统进行跨域请求时session并不共享,会导致sessionId不一致的情况

springboot 解决方法:https://blog.csdn.net/qq_42317294/article/details/88353901

首先处理跨域问题

springboot 有处理跨域的注解@CrossOrigin

这样已经可以处理跨域请求,但session并不共享

注解修改如下:

@CrossOrigin(allowCredentials="true",allowedHeaders="*")

同时前端js   ajax部分加入: 

                   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('服务器发生错误!');
				    }
				});
			}


版权声明:本文为weixin_47478177原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。