用户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>
           &lt;artifactId&gt;spring-boot-starter-data-redis</artifactId&gt;
           <version&gt;2.6.4</version>
        </dependency>
    
  3. yml文件配置Redis
    storetype:默认null表示存储在服务器;现改为redis表示redis读写session

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

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

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

原文地址:https://blog.csdn.net/weixin_52154534/article/details/134605700

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_20280.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

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