zoukankan      html  css  js  c++  java
  • session + redis 实现session 共享原理和原因

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

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

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

    当客户端发送第二次请求的时候,此时本次请求已经携带了session(跳过登录),nginx却将请求分发给服务器2,因为服务器2中没有session,所以无法与客户端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,就能执行之后的操作。



    原文链接:https://blog.csdn.net/grabungen/java/article/details/91950667

  • 相关阅读:
    微信小程序开发---各代码文件简介
    LeetCode71. 简化路径
    LeetCode70. 爬楼梯
    LeetCode69. x 的平方根
    LeetCode68. 文本左右对齐
    LeetCode剑指 Offer 09. 用两个栈实现队列
    LeetCode67. 二进制求和
    LeetCode66. 加一
    LeetCode65. 有效数字
    LeetCode64. 最小路径和
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/13100166.html
Copyright © 2011-2022 走看看