将用户的session改为分布式共享session

将用户的session改为分布式session

分布式session理解

  1. 使用分布式session的原因:
    后台服务器是分布式的(比如要负载均衡),在A服务器请求的的信息(如用户登录信息)存在A的session中,B服务器并不能识别到。

  2. 解决方法:共享存储,把用户请求的信息保存在A,B服务器都能找到的地方(如图所示)。
    请添加图片描述

  3. 共享存储方案

    1. Redis(基于内存的K/V数据库) √ 此处选择redis,因为用户信息读取/登录及其频繁,Readis基于内存,读写性能很高。
    2. Mysql
    3. 文件服务器

实现session共享

  1. 安装Redis,可以按照官网操作,Redis官网

  2. 后端引入Redis依赖,能够操作redis

        <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-redis</artifactId>
           <version>2.6.4</version>
        </dependency>
    
  3. 在yml文件中配置Redis
    store-type:默认是null,表示存储在服务器;现改为redis,表示从redis读写session。

      # Redis 配置
      redis:
        port: 6379
        host: localhost
        database: 0
        store-type: redis
    
  4. 可以使用QuickRedis工具来管理Redis:QuickRedis官网
    在这里插入图片描述

  5. 把session写到Redis中 ,不用自己手写,引入spring-session和redis的整合,spring自动将session存储到redis中,并且从redis读。

        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
            <version>2.6.3</version>
        </dependency>   
    
  6. 测试验证
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D. D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值