session + redis 实现session 共享原理和原因[亲测有效]

session + redis 实现session 共享原理和原因[亲测有效]要用session+redis共享session的原因:先进的企业级或者大型的网站平台,都是分布式结构,分布式的好处是通过nginx分发请求,让多个服务器各自处理请求,来减少单一服务器的压力,并且提高执行效率。在这个分布式结构下,如果不用共享session的话,就会出现问题。当一个客户端发送一个请求(无session),通过nginx将第一次请求分发给服务器1,服务器判断无se…

大家好,欢迎来到IT知识分享网。

要用  session  + redis 共享session的原因:

先进的企业级或者大型的网站平台,都是分布式结构,分布式的好处是通过nginx分发请求,让多个服务器各自处理请求,来减少单一服务器的压力,并且提高执行效率。

在这个分布式结构下,如果不用共享session的话,就会出现问题。当一个客户端发送一个请求(无session),通过nginx将第一次请求分发给服务器1,服务器判断无session,就让那个客户进行登录操作,并得到响应,此时客户端会存储一个来自服务器1响应的session,并存储在客户端。

当客户端发送第二次请求的时候,此时本次请求已经携带了session(跳过登录),nginx却将请求分发给服务器2,因为服务器2中没有session,所以无法与客户端session进行对应。所以程序会出现异常或是报错,无法正常响应。

 

session + redis 实现session 共享原理和原因[亲测有效]

 

解决方法 : session  +  redis 实现session 共享

  session  +  redis 实现session 共享原理:

为了避免上面session 在服务器直接不共享的问题,就将 session 放入 redis 中。

当客户端第一次发送请求后,nginx将请求分发给服务器1 ,然后将服务器1 产生的session 放入redis中,这样的话 客户端、服务器1 和redis中都会有一个相同的session,当客户端发送第二次请求的时候,nginx将请求分发给服务器2 (已知服务器2 中无session),因为客户端自己携带了一个session,那么服务器2 就可以拿着客户端带来的session中的session ID去redis中获取session,只要拿到这个session,就能执行之后的操作。

session + redis 实现session 共享原理和原因[亲测有效]

 

 

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13619.html

(0)
上一篇 2023-03-22 12:00
下一篇 2023-04-30 18:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信