当前位置:网站首页>redis解决分布式session问题
redis解决分布式session问题
2022-08-04 09:23:00 【鱼子酱:P】
- a、什么是session
session是一种会话技术,我们知道http是无状态协议的,就是这次连接传输数据后,下次连接服务器是不知道这次的请求是谁的,因此我们要做一个标记,让服务器知道每次请求是哪个(客户端)浏览器发出的,就是请求的时候服务器会创建一个session把session的值保存在服务器,把sessionID返回给浏览器,请求的时候把sessionID放在请求头中,这样服务器解析之后就能发现是哪个浏览器发来的请求
- b、session存放在什么地方,会引起什么问题
session是存在服务器的,只是把sessionID返回给浏览器。这样我们把浏览器关掉,session也不会实现,但是只是丢失了sessionID,这样也是访问不到的。
- c、session的工作原理
session是由服务器创建的,存放在服务器中,把sessionID返回给浏览器,请求的时候,每次请求把sessionID就到请求头中,服务器解析以后就知道是哪个浏览器
- e、分布式session是什么
我们知道session是保存在服务器的,这样当我们的项目做了负载均衡以后,如果在session中存了数据,那么就有可能有有些项目取不到session中的数据,这就是分布式session问题

通常我们在开发后台管理系统时,会使用 Session 来保存用户的会话(登录)状态,这些 Session 信息会被保存在服务器端,但这只适用于单系统应用,如果是分布式系统此模式将不再适用。
例如用户一的 Session 信息被存储在服务器一,但第二次访问时用户一被分配到服务器二,这个时候服务器并没有用户一的 Session 信息,就会出现需要重复登录的问题,问题在于分布式系统每次会把请求随机分配到不同的服务器。
分布式系统单独存储 Session 流程图:

因此,我们需要借助 Redis 对这些 Session 信息进行统一的存储和管理,这样无论请求发送到那台服务器,服务器都会去同一个 Redis 获取相关的 Session 信息,这样就解决了分布式系统下 Session 存储的问题。
分布式系统使用同一个 Redis 存储 Session 流程图:

边栏推荐
猜你喜欢
随机推荐
LeetCode中等题之旋转图像
《福格行为模型》:如何养成好习惯?
ZbxTable 2.0 重磅发布!6大主要优化功能!
基于cRIO-904X搭建Simulink与Labview环境
Cloud function to achieve automatic website check-in configuration details [Web function/Nodejs/cookie]
v-model原理,在“radio”、“checkbox”、“select”、修饰符
MindSpore:model.train中的dataset_sink_mode该如何理解?
Four common methods of network attacks and their protection
思想茶叶蛋 (Jul 31,2022)| 元宇宙(Metaverse)下了一枚什么样的蛋
PD 源码分析- Checker: region 健康卫士
关于技术学习的6个观点
学习使用php把stdClass Object转array的方法整理
leetcode单调栈经典例题——最大矩形
Oracle怎么获取当前库或者同一台服务器上某几个库的数据总行数?
IDEA 自动导入的配置(Auto import)
区分惯性环节与延迟环节
tcp连接的细节
oracle sql multi-table query
注意力机制
Detailed explanation of MSTP protocol configuration on Layer 3 switches [Huawei eNSP experiment]









